Post

Rest Basics

REST Introduction and REST Architecture

  • Definition of REST:
    • REST stands for Representational State Transfer.
    • Understanding each term:
      • State: Represents data.
      • Representational: Denotes a data format (e.g., XML, JSON, YAML, HTML, plain text).
      • Transfer: Involves transferring data between consumer and provider using HTTP protocol.
  • REST Architecture Overview:
    • Involves a client-server model where a client sends HTTP requests to a server, and the server processes and responds.
    • Clients can be diverse (e.g., Android, iOS, desktop, web applications).
    • Independence: Client and server should be independent; changes in one shouldn’t affect the other.
    • Message Exchange Format: Data exchanged between client and server typically in JSON or XML.
  • Key Points about REST:
    • Origin: Coined by Roy Fielding, inventor of HTTP protocol.
    • Purpose: Facilitates communication between applications over HTTP, akin to browser-server interaction.
    • Popularity: Rapid adoption due to increased mobile device usage, allowing web and mobile clients to consume the same APIs.
  • REST Architectural Constraints:
    • Client-Server Architecture: Client and server are distinct, independent components.
    • Statelessness: No session data stored on the server; each request is stateless.
    • Cacheability: Clients can cache responses for improved performance.
    • Uniform Interface: Provides a consistent, generic interface for interactions, simplifying architecture.
    • Layered System: Servers can have multiple layers for scalability and load balancing.
    • Code on Demand (Optional): Allows clients to download and execute code from the server, though rarely used.
  • Conclusion:
    • RESTful APIs follow these architectural constraints to ensure effective communication between clients and servers.

Key Terms:

  • REST
  • Representational State Transfer
  • State
  • Representational
  • Transfer
  • HTTP protocol
  • Client
  • Server
  • Web services
  • HTTP request
  • HTTP response
  • Message Exchange Format
  • JSON
  • XML
  • Roy Fielding
  • Client-server architecture
  • Independence
  • Statelessness
  • Cacheability
  • Uniform Interface
  • Layered System
  • Code on Demand

REST Key Concepts - Resource, URI and Sub-resource

Notes on REST Key Concepts:

  • Resource in REST:
    • In a REST-based system, everything is a resource.
    • A resource is anything exposed to the outside world through the application.
    • Examples of resources in various systems: Employee, Department, Address, Project, Task (Employee Management System); Student, Teacher, Class, Subject, School (Student Management System); Post, Comment, User, Tags, Category (Blog Application).
    • CRUD (Create, Read, Update, Delete) REST APIs are typically created for each resource.
    • Clients consume these REST APIs to perform actions on resources.
  • Uniform Resource Identifier (URI):
    • URI is used to identify resources.
    • Each URI should be unique.
    • Examples of URIs for CRUD operations on a Post resource:
      • URL to list posts
      • URL to retrieve a post by ID
      • URL to create a new post
      • URL to update a post
      • URL to delete a post
  • Sub-resource:
    • Sub-resources are used to model relationships in REST APIs.
    • Relationships are modeled by placing a sub-resource after a resource.
    • Pattern: resource/resource-id/sub-resource/sub-resource-id.
    • Example: In a blog application, posts can have comments as sub-resources. To retrieve comments for a particular post, the URI would be post/post-id/comments.
    • Sub-resources are used when child objects cannot exist without their parent (e.g., comments cannot exist without a post, drivers cannot exist without a car).
    • Deleting the parent resource may also delete the associated sub-resources.

Key Terms:

  • Resource
  • CRUD
  • Uniform Resource Identifier (URI)
  • Sub-resource
  • Relationships
  • Parent-child relationship
  • HTTP Methods
  • HTTP Status Codes

REST Key Concepts - Http Methods

Notes on HTTP Methods in RESTful Web Services:

  • HTTP Methods:
    • GET: Used to retrieve or get a collection or a single resource. Not for modifying or creating resources.
    • POST: Utilized to create a new resource. Typically used for adding new entities like employees, students, or users.
    • PUT: Employed to update an existing resource. Used when modifying existing entities such as updating employee details or student information.
    • DELETE: Used to delete a collection or a single resource. Enables removal of entities like students or specific records identified by their unique identifiers.
    • PATCH: Optionally used to partially update an existing resource.
  • Usage Examples:
    • GET Method: Retrieve a list of posts or a single post by ID.
    • POST Method: Create a new post in a blog application.
    • PUT Method: Update an existing post by specifying its ID.
    • DELETE Method: Delete a post or other resources by their IDs.
  • Additional Note:
    • PATCH Method: Used for partial updates to existing resources, updating specific fields without modifying the entire resource.

Key Terms:

  • HTTP Methods
  • GET
  • POST
  • PUT
  • DELETE
  • PATCH
  • RESTful Web Services
  • Resource Modification
  • Resource Creation
  • Resource Deletion
  • Postman

REST Key Concepts - HTTP Status Codes

Notes on Important HTTP Status Codes:

  • Overview:
    • HTTP status codes indicate the outcome of a request made by a client to a server.
    • These status codes help in understanding the status of the request and guide further actions.
  • 200 OK:
    • Indicates: Request is successful, and response content is returned to the client as appropriate.
    • Example: Retrieving a collection of blog posts or a single post.
  • 201 CREATED:
    • Indicates: Request is successful, and a new resource is created.
    • Example: Creating a new blog post; server responds with the newly created resource.
  • 400 Bad Request:
    • Indicates: Server failed to process the request due to malformed syntax in the request.
    • Example: Client passed invalid parameters; server responds with a bad request status code.
  • 401 Unauthorized:
    • Indicates: Authentication is required for the resource, and the client needs to provide appropriate credentials.
    • Example: Accessing a protected resource without valid authentication; server responds with an unauthorized status code.
  • 403 Forbidden:
    • Indicates: Server refuses to respond to the request, even if the request is valid.
    • Example: Attempting to access unauthorized resources; server responds with a forbidden status code.
  • 404 Not Found:
    • Indicates: Requested resource is not found at the specified location.
    • Example: Attempting to delete a blog post that does not exist; server responds with a not found status code.
  • 500 Internal Server Error:
    • Indicates: An unexpected error occurred on the server, and the request cannot be fulfilled.
    • Example: Server-side error during user authentication or other processing; server responds with an internal server error status code.

Key Terms:

  • HTTP Status Codes
  • 200 OK
  • 201 CREATED
  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 500 Internal Server Error
  • Client-Server Communication
This post is licensed under CC BY 4.0 by the author.