1. Principles of REST:
– ‘Representational state transfer’ term defined by Roy Fielding in 2000
– Server responds with a resource representation containing hypermedia links
– Identifiers are discovered dynamically, enabling loose coupling between client and server
– Only initial identifier needs to be known, allowing other identifiers to change without prior client notification
– REST architecture promotes loose coupling and dynamic resource discovery
– Data returned to client in various formats like HTML, XML, JSON
– Resource manipulation based on representations
– Messages are self-descriptive
– HATEOAS allows dynamic discovery of resources
– Roy Fielding’s contributions to REST architecture
2. History and Evolution of REST:
– Web entered everyday use in 1993-1994 with general use websites
– Fragmented description of Web architecture led to a need for standardization
– W3C and IETF worked on formal descriptions of URI, HTTP, and HTML standards
– Roy Fielding developed REST architectural style in his 2000 PhD dissertation
– REST style identified unique features like resources and client-server interactions
3. Architectural Properties and Constraints of REST:
– REST designed for Internet-scale client-server applications
– Emphasizes loose coupling between user agent and origin server
– Text-based transfer with uniform addressing protocol supports Web requirements
– REST constraints impact performance, scalability, simplicity, modifiability, visibility, portability, and reliability
– Supports large-scale adoption, extensibility, and independent deployment of components
– REST defines six guiding constraints for system architecture
– Constraints lead to non-functional properties like performance and scalability
– Constraints include Client/Server, Stateless, Cache, Uniform Interface, Layered System, and optional Code on Demand
– Enable desirable properties like simplicity, modifiability, visibility, and reliability
– Separation of clients and servers, statelessness, cacheability, uniform interfaces, and layered systems are key constraints
4. Uniform Interface in REST:
– Fundamental constraint in designing RESTful systems
– Simplifies architecture and allows independent evolution of parts
– Four constraints include resource identification in requests using URIs
– Resources are separate from their representations
– Enables decoupling and evolution of architecture parts
5. Resources and References on REST:
– Fielding’s publications on REST architecture
– Nick Couldry’s work on media and digital practices
– Books on SOA with REST principles
– Richardson and Ruby’s book on RESTful Web Services
– Gupta’s tutorial on REST HATEOAS
– Visual-Paradigm’s explanation of REST API
– Classification of HTTP APIs
– Maturity model for Semantic RESTful Web APIs
– Further reading on advanced REST research topics
– Martin Fowler’s Richardson Maturity Model for REST
This article may be too technical for most readers to understand.(October 2020) |
REST (representational state transfer) is a software architectural style that was created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of a distributed, Internet-scale hypermedia system, such as the Web, should behave. The REST architectural style emphasises uniform interfaces, independent deployment of components, the scalability of interactions between them, and creating a layered architecture to promote caching to reduce user-perceived latency, enforce security, and encapsulate legacy systems.
REST has been employed throughout the software industry to create stateless, reliable web-based applications. An application that adheres to the REST architectural constraints may be informally described as RESTful, although this term is more commonly associated with the design of HTTP-based APIs and what are widely considered best practices regarding the "verbs" (HTTP methods) a resource responds to while having little to do with REST as originally formulated—and is often even at odds with the concept.
English
Pronunciation
- enPR: rĕst, IPA(key): /ɹɛst/
- Rhymes: -ɛst
- Homophone: wrest
Etymology 1
From Middle English rest, reste, from Old English ræst, from Proto-West Germanic *rastu, from Proto-Germanic *rastō, from Proto-Indo-European *ros-, *res-, *erH- (“rest”).