What Is a REST API, and Why Yours Probably Isn’t One
fagnerbrack.com
9 min read
View original
Summary (TL;DR)
Roy Fielding's 2000 thesis defines REST as six constraints: client-server, stateless, cacheable, uniform interface (including HATEOAS), layered system, and code on demand. Most JSON APIs only satisfy client-server and stateless. They often skip caching and HATEOAS. HATEOAS makes APIs discoverable and evolvable by embedding links and actions in responses, so clients don't hardcode endpoints. Skipping HATEOAS leads to reinventing pagination, versioning, and discoverability—costly for large public APIs. Fielding's REST describes the web, not APIs; applying it to JSON APIs dropped crucial constraints.