What is REST?
Representational State Transfer (REST) is a platform-and-language-independent architectural style used in building services for distributed systems and networked applications. REST ignores the details of component implementation and protocol syntax. It uses HTTP to make calls between the applications.
REST is primarily used to expose resources across networks allowing applications to share data. REST APIs are used for machine-to-machine communications. REST calls are sent over the HTTP protocol, hence REST requests are in the form of URLs that point to the resource(s) on the server. Required parameters are attached to the end of the URL. For example, in the resource URL http://<some-name>.com/person/1234, person is the resource and 1234 is the parameter that is passed to the URL of the resource. You can use any REST client to make REST calls.
The key features of REST architectural style are:
- Client-server architecture: Provides a separation of implementation details between clients and servers.
- Stateless communication: During a client-server communication, the server does not store any session information, making the client-server communication stateless. Every request is complete in itself and must include all the information required to complete the request.
- Cacheability: Provides an option to the client to cache response data and reuse it later for equivalent requests; thus partially eliminating some client-server interactions. This results in improved scalability and performance.