REST Is an Architectural Style

What REST Really Means

REST stands for Representational State Transfer. It was introduced by Roy Fielding as an architectural style based on constraints for distributed systems.

A RESTful system is not simply an API that uses JSON, HTTP, and URLs. REST has architectural constraints including client-server separation, statelessness, cacheability, a uniform interface, layered systems, and optionally code-on-demand. HATEOAS is part of the uniform-interface constraint.

Many APIs are better described as HTTP APIs rather than strictly RESTful APIs because they use HTTP but do not implement all REST constraints. This distinction matters when discussing architecture precisely.

REST Architectural Constraints
Key Takeaways
  • REST is an architectural style, not a framework.
  • JSON is not a REST requirement.
  • HTTP APIs and RESTful APIs are not always synonymous.