Skip to main content
Glossary Term

REST

Principles and History of REST - REST is a software architectural style that defines constraints for distributed hypermedia systems. - REST emphasizes uniform interfaces, independent deployment of components, and loose coupling between client and server. - REST was introduced and defined by Roy Fielding in 2000. - The Web started to become widely used in 1993-1994, leading to the need for a formal Web architecture. - Fielding, involved in creating primary Web standards, created the REST architectural style over the next six years. Architectural Properties and Constraints of REST - REST is designed for client-server applications and promotes loose coupling. - REST provides a uniform addressing protocol, text-based transfer of information, and enables robustness, independent deployment, and large-grain data transfer. - REST affects performance, scalability, simplicity, modifiability, visibility, portability, and reliability. - REST defines six guiding constraints, including client-server architecture, statelessness, cacheability, uniform interface, layered system, and code on demand. - These constraints improve various non-functional properties of REST. Client-Server Architecture and Stateless Protocol - Client-server architecture separates user interface and data storage concerns, improving portability and simplifying server components. - Stateless protocol means no session information is retained by the server, improving scalability and allowing independent evolution of components. - Relevant session data is sent by the client in each packet of information. Cacheability and Layered System - Clients and intermediaries can cache responses, improving scalability and performance. - Cache can be stored in client machines, browser cache storage, or Content Delivery Networks (CDNs). - Layered system allows clients to be unaware of intermediaries, enabling load balancing, shared caches, and separate security layers. - Intermediary servers can call multiple other servers to generate a response. Uniform Interface, Classification Models, and Applications of REST - Uniform interface simplifies and decouples the architecture, allowing resource identification, manipulation, self-descriptive messages, and dynamic discovery of available resources. - Classification models like Richardson Maturity Model and HTTP-based API classification assess adherence to REST design principles. - RESTful APIs adhere to REST architectural constraints, use standards like HTTP, URI, JSON, and XML, and are widely used in web development. - RESTful services are lightweight, easier to develop and maintain, have better performance, and are suitable for resource-oriented architectures. - Semantic Web Services combine RESTful principles with semantic technologies, enabling automatic discovery, composition, and enhancing interoperability and integration of distributed systems. - RESTful services are highly scalable, platform-independent, widely used in mobile app development, and the foundation of popular web APIs. They are suitable for building distributed systems and microservices architectures.