Generated by GPT-5-mini| REST | |
|---|---|
| Name | REST |
| Author | Roy Fielding |
| Released | 2000 |
| Genre | Software architecture |
| License | Conceptual |
REST
Representational State Transfer is an architectural style for distributed hypermedia systems, formalized in Roy Fielding's doctoral dissertation. It defines a set of constraints intended to enable scalable, performant, and evolvable interactions among networked components, and it has influenced web architecture, APIs, and system design across industry and academia.
Representational State Transfer originated in Roy Fielding's 2000 dissertation at the University of California, Irvine and emerged from experience with protocols such as HTTP/1.1, Uniform Resource Identifier, and early web applications developed at organizations including World Wide Web Consortium and Internet Engineering Task Force. The style prescribes interactions based on resource identifiers, representations, and state transitions, drawing on principles found in the design of the World Wide Web and implementations by organizations such as Mozilla Foundation, Google, Microsoft, and Amazon (company). The model has been applied in software produced by companies like Twitter, Facebook, GitHub, and institutions including NASA and National Institutes of Health.
The architecture is defined by a set of constraints often cited in system design literature and taught in courses at institutions such as Massachusetts Institute of Technology, Stanford University, and Carnegie Mellon University. Key constraints include stateless interactions, uniform interface, cacheable responses, client–server separation, layered system, and optional code on demand. These constraints connect to protocol features standardized by bodies like the Internet Engineering Task Force and to practices demonstrated in implementations by Apache Software Foundation projects and products from Oracle Corporation and IBM. The uniform interface concept intersects with design approaches used in Representational State Transfer (Fielding dissertation)-informed APIs created by Stripe, PayPal, Slack Technologies, and Dropbox.
Typical components include clients, servers, resources, representations, and intermediaries such as proxies, gateways, and caches; similar components are discussed in systems designed by Amazon Web Services, Cloudflare, Akamai Technologies, and Fastly. Resources are identified by URIs as developed in standards from World Wide Web Consortium and implemented in platforms like Node.js, Spring Framework, Django (web framework), and Ruby on Rails. Representation formats commonly include Hypertext Transfer Protocol payloads like JavaScript Object Notation, XML (eXtensible Markup Language), and HTML5, with tooling from Google Chrome dev tools, Postman (software), curl, and libraries maintained by GitHub. Security and authentication integrate with standards and services such as OAuth, OpenID Connect, TLS, and identity providers operated by Okta, Auth0, and Microsoft Azure Active Directory.
REST-style interfaces have been implemented across a broad set of services, from cloud APIs provided by Amazon Web Services and Google Cloud Platform to social platforms like Facebook and LinkedIn. Enterprises such as Netflix and Airbnb employ the style alongside event-driven systems and service meshes using projects like Kubernetes and Istio. Mobile application backends developed by companies including Uber Technologies and Instagram rely on RESTful endpoints often integrated with client SDKs from Apple Inc. and Google LLC. Public sector agencies such as European Commission bodies and United States Department of Defense publish data via REST-style APIs for interoperability with tools from Esri and Tableau (software).
Critiques come from researchers and engineers at institutions such as Massachusetts Institute of Technology, University of Cambridge, and companies including Facebook and Google LLC, who note limitations in handling real-time communication, complex transactions, and hypermedia controls in practice. Alternatives and supplements discussed in literature and industry include GraphQL, gRPC, and WebSocket-based designs used by teams at Twitter and LinkedIn. Concerns about overloading HTTP methods, inconsistent use of status codes, and brittle client–server coupling have been highlighted in blogs and publications from organizations like ACM and IEEE, and addressed in tooling from Red Hat and HashiCorp.