Generated by GPT-5-mini| REST (computing) | |
|---|---|
| Name | REST |
| Caption | Representational State Transfer architectural style |
| Introduced | 2000 |
| Designer | Roy Fielding |
| Genre | Software architecture |
REST (computing)
Representational State Transfer is an architectural style for distributed hypermedia systems introduced in Roy Fielding's 2000 doctoral dissertation at the University of California, Irvine. It defines constraints and principles for scalable, interoperable web services and influenced the design of the World Wide Web, Hypertext Transfer Protocol, and numerous web-based platforms. REST emphasizes stateless interactions, uniform interfaces, and cacheable responses to enable large-scale systems used by organizations such as Amazon (company), Google LLC, Microsoft, and Facebook.
Roy Fielding articulated REST in his doctoral dissertation submitted to the University of California, Irvine in 2000 while also contributing to the design of the HTTP/URI standards within the Internet Engineering Task Force. Early web architecture and hypertext concepts trace to pioneers like Tim Berners-Lee, whose work at CERN led to the World Wide Web and influenced REST's hypermedia emphasis. The practical uptake intersected with the rise of web APIs in companies such as eBay, Twitter, Salesforce, and Amazon Web Services, and academic discussions at venues like the ACM and IEEE advanced REST's adoption. Standards bodies including the IETF and industry groups like the W3C interacted with REST principles while formalizing technologies such as HTTP/1.1 and HTML5.
REST builds on constraints intended to enable scalability and evolvability, drawing conceptual lineage from earlier distributed systems research at institutions like MIT and Bell Labs. Key principles include a client–server separation exemplified by deployments at Netflix and Google Cloud Platform, stateless communication used in systems at Amazon Web Services and Dropbox, cacheability applied in CDN services by Akamai Technologies, and a uniform interface that simplifies interaction across services like Stripe and PayPal. REST's emphasis on hypermedia as the engine of application state links to hypertext concepts promoted by Tim Berners-Lee and implementations in projects like Mozilla Firefox and Apache HTTP Server.
The canonical REST constraints include client–server separation, statelessness, cacheable responses, uniform interface, layered system, and optionally code-on-demand. These constraints influenced architectures at companies such as LinkedIn, GitHub, and Google. The uniform interface constraint breaks down into resource identification via URI, manipulation through representations supported by JSON and XML serializers used across Microsoft Azure and IBM products, self-descriptive messages akin to semantics in RDF, and hypermedia controls reflected in approaches by Amazon and Netflix. Layered systems were adopted in multi-tier platforms by Oracle Corporation and SAP SE.
RESTful systems comprise resources, representations, clients, servers, and intermediaries. Resources are named with URIs and manipulated using methods defined in HTTP (e.g., GET, POST, PUT, DELETE) as implemented in web servers like Nginx and Apache HTTP Server. Representations can be encoded in formats such as JSON (promoted by projects like ECMAScript and Node.js), XML (used in SOAP and RSS), HTML (rendered by Google Chrome), and media types standardized by the IANA. Interactions often traverse intermediaries such as reverse proxies and caches deployed by Cloudflare or Akamai Technologies, and security considerations involve protocols like TLS and identity solutions from OAuth and OpenID Foundation.
While REST is protocol-agnostic, its adoption is tightly coupled with HTTP semantics, status codes standardized by the IETF, and methods supported by servers and clients including curl and Postman. Implementations appear across frameworks such as Django, Ruby on Rails, Spring Framework, and Express.js, and platforms including Amazon Web Services, Google Cloud Platform, and Microsoft Azure. Hypermedia formats like HAL, JSON-LD, and Atom arose to support RESTful HATEOAS designs; content negotiation leverages HTTP headers as seen in browsers like Mozilla Firefox and Google Chrome. Tooling ecosystems integrate API description languages such as OpenAPI Initiative and documentation portals at companies like Stripe and GitHub.
Critics in academia and industry question the practical use of the hypermedia constraint, citing examples from Microsoft and Twitter where simple RPC-style APIs prevailed. Performance concerns arise in high-throughput services at Netflix or Facebook where binary protocols like gRPC and Protocol Buffers are favored. The lack of formal versioning in REST led organizations including Google and Amazon (company) to adopt pragmatic URL and header strategies. Security challenges and rate-limiting policies at platforms like GitHub and Twitter highlight operational limitations when scaling REST APIs.
Alternatives and complements include SOAP and WSDL in enterprise systems by IBM and Oracle Corporation, remote procedure call frameworks like gRPC (developed by Google LLC) and Thrift (originally from Facebook), message-oriented middleware exemplified by Apache Kafka and RabbitMQ, and graph-based APIs such as GraphQL (developed by Facebook). API specification and governance tools include the OpenAPI Initiative and API Blueprint used across companies like MuleSoft and Postman.
Category:Web architecture