Representational State Transfer (REST) is an architectural style of the World Wide Web that is used in building services for distributed systems and networked applications. RESTful APIs are increasingly preferred for enterprise, web and mobile integration use cases.
The key abstraction of information in REST is a resource, with focus on components, the constraints upon their interaction with other components, and their interpretation of significant data elements. REST ignores the details of component implementation and protocol syntax.
The supported features of REST architectural style are:
- Client-server architecture: Provides a separation of implementation details between clients and servers.
- Stateless communication: Ensures that each request contains all of the information required to understand it independently of any stored context on the server.
- 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.
Currently, the following HTTP operations can be performed on resources: GET, PUT, DELETE, and POST. Both XML and JSON are supported as data serialization formats along with support for definition of custom status codes, key-value parameters, and query parameters.