RESTFul Principles
and Constraints
The REST architecture is based on a few characteristics
which are elaborated below. Any RESTful web service has to comply with the
below characteristics in order for it to be called RESTful. These
characteristics are also known as design principles which need to be followed
when working with RESTful based services.
1. RESTFul
Client-Server
This is the most fundamental requirement of a REST based
architecture. It means that the server will have a RESTful web service which
would provide the required functionality to the client. The client send's a
request to the web service on the server. The server would either reject the
request or comply and provide an adequate response to the client.
2. Stateless
The concept of stateless means that it's up to the client to
ensure that all the required information is provided to the server. This is
required so that server can process the response appropriately. The server
should not maintain any sort of information between requests from the client.
It's a very simple independent question-answer sequence. The client asks a
question, the server answers it appropriately. The client will ask another
question. The server will not remember the previous question-answer scenario
and will need to answer the new question independently.
3. Cache
The Cache concept is to help with the problem of stateless
which was described in the last point. Since each server client request is
independent in nature, sometimes the client might ask the server for the same
request again. This is even though it had already asked for it in the past.
This request will go to the server, and the server will give a response. This
increases the traffic across the network. The cache is a concept implemented on
the client to store requests which have already been sent to the server. So if
the same request is given by the client, instead of going to the server, it
would go to the cache and get the required information. This saves the amount
of to and fro network traffic from the client to the server.
4. Layered System
The concept of a layered system is that any additional layer
such as a middleware layer can be inserted between the client and the actual
server hosting the RESTFul web service (The middleware layer is where all the
business logic is created. This can be an extra service created with which the
client could interact with before it makes a call to the web service.). But the
introduction of this layer needs to be transparent so that it does not disturb
the interaction between the client and the server.
5. Interface/Uniform
Contract
This is the underlying technique of how RESTful web services
should work. RESTful basically works on the HTTP web layer and uses the below
key verbs to work with resources on the server
•POST - To create
a resource on the server
•GET - To
retrieve a resource from the server
•PUT - To change
the state of a resource or to update it
•DELETE - To
remove or delete a resource from the server
No comments:
Post a Comment