- **Epistemic status:** #seedlings Representational State Transfer or for short, REST is a web service [[Application Programming Interface (API)]] and architectural style for a distributed system. It was presented by Roy Fielding in 2000. The protocols for REST are: 1. **Client-server:** By separating concerns between the user interface from the data concerns, we simplify the process of portability and scalability. 2. **Stateless:** Every request of the client to the server must contain all the information necessary to understand the request, sending back the data. Any session storage is therefore saved on the client. 3. **Cacheable:** By defining if a request can be cached or not, the client can reuse a common request for data later by saving it on the client's cache. 4. **Uniform Interface:** A client and a server communicate through HTTP (Hypertext Transfer Protocol) and providing an adequate response to the data formatted in the type chosen. Typically, JSON. 5. **Layered System:** Allows an architecture to be composed of different hierarchical layers. Each layer has [[Modularity]] by being loosely coupled, allowing for encapsulation. --- ## References - “What Is REST - REST API Tutorial.” Accessed April 28, 2022. <https://restfulapi.net/>.