Reading Time: 2 minutes

REST APIs give us lightweight, flexible ways to integrate applications. And have emerged as the most straightforward method for connecting parts in microservices architectures.

What is a REST API?

API stands for an application programming interface. API is a protocol that defines how applications or devices can connect to and communicate with each other. A REST conforms to the design principles of the REST. REST stands for representational state transfer architectural style.

REST provides a relatively high level of flexibility and is lightweight for developers. It has emerged as a common method for connecting parts and applications in a microservices architecture.

Principles of REST

Uniform Interface

All APIs have their requests resources the same in look no matter from where the request is coming. The REST API should ensure the same piece of data and such as the name or address of a user. It belongs to only one uniform resource identifier (URI). Resources shouldn’t be too large but should contain every piece of information that the client might need.

Client-server decoupling

The client and server sides are totally independent of each other in REST API. The information the client application should know is the URI of the requested resource. It can’t interact with the server application in another way. Similarly, a server application shouldn’t change the client application other than passing it to the requested data via HTTP.


REST APIs are stateless, meaning that all request needs to include all the information necessary for processing them. It does not need any server-side sessions. Server applications aren’t allowed to save any data related to a client request.


Resources should be cacheable on the server or client-side. It can enhance performance on the client side while increasing scalability on the server-side. Server responses are also required to include information about whether caching is allowed for the delivered resource.

Layered system architecture

In REST APIs, the calls and responses go through many layers. As a rule of thumb, don’t guess that the client and server applications connect to each other. There may be a number of different intermediaries in the communication loop. REST APIs are required to be designed so that neither the client nor the server can tell whether. It communicates with the end application or an intermediary.

Code on demand

REST APIs commonly send static resources, but in certain cases, responses can also consist of executable code (such as Java applets). In these cases, the code should only compile on-demand.


Through this blog, You will get the basic knowledge about REST API and also it provides us with a more concise and readable code. We explored the principles of REST API like uniform interface, client-server decoupling etc.

Written by 

Vineet Chauhan is a Software Consultant at Knoldus Inc. His practice area is Scala. He is a good team worker. He is always ready to face any challenging task.