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.