What is REST architecture?
REST stands for REpresentational State Transfer. REST is web standards based architecture and uses HTTP Protocol. It revolves around resource where every component is a resource and a resource is accessed by a common interface using HTTP standard methods. REST was first introduced by Roy Fielding in 2000.
A REST Server simply provides access to resources and REST client accesses and modifies the resources using HTTP protocol. Here each resource is identified by URIs/ global IDs. REST uses various representation to represent a resource like text, JSON, XML but JSON is the most popular one.
Following four HTTP methods are commonly used in REST based architecture.
- GET - This is used to provide a read only access to a resource.
- PUT - This is used to create a new resource.
- DELETE - This is used to remove a resource.
- POST - This is used to update a existing resource or create a new resource.
RESTful Web Services
A web service is a collection of open protocols and standards used for exchanging data between applications or systems. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., communication between Java and Python, or Windows and Linux applications) is due to the use of open standards.
Web services based on REST Architecture are known as RESTful web services. These webservices uses HTTP methods to implement the concept of REST architecture. A RESTful web service usually defines a URI, Uniform Resource Identifier a service, which provides resource representation such as JSON and set of HTTP Methods.
Creating RESTful for A Library
Consider we have a JSON based database of users having the following users in a file users.json:
Based on this information we are going to provide following RESTful APIs.
|S. N.||URI||HTTP Method||POST body||Result|
|1||listUsers||GET||empty||Show list of all the users.|
|2||addUser||POST||JSON String||Add details of new user.|
|3||deleteUser||DELETE||JSON String||Delete an existing user.|
|4||:id||GET||empty||Show details of a user.|
I'm keeping most of the part of all the examples in the form of hard coding assuming you already know how to pass values from front end using Ajax or simple form data and how to process them using express Request object.
Let's implement our first RESTful API listUsers using the following code in a server.js file:
Now try to access defined API using URL: http://127.0.0.1:8081/listUsers and HTTP Method : GET on local machine using any REST client. This should produce following result:
You can change given IP address when you will put the solution in production environment.
You can accept the same input in the form of JSON using Ajax call but for teaching point of view, we are making it hard coded here. Following is the addUser API to a new user in the database:
Now try to access defined API using URL: http://127.0.0.1:8081/addUser and HTTP Method : POST on local machine using any REST client. This should produce following result:
Now we will implement an API which will be called using user ID and it will display the detail of the corresponding user.
Now try to access defined API using URL: http://127.0.0.1:8081/deleteUser and HTTP Method : DELETE on local machine using any REST client. This should produce following result: