You’ve probably built a “REST API” before. But what does “RESTful” truly mean? It’s not just about using JSON and HTTP. It’s a spectrum, best described by the Richardson Maturity Model (RMM).
Level 0 (The Swamp): Using HTTP as a transport system for remote procedure calls (RPC). Think of a single /api endpoint where all operations are POST requests.
Level 1 (Resources): Introducing the concept of resources. Instead of one endpoint, you have multiple URIs like /users and /orders.
Level 2 (HTTP Verbs): Using HTTP methods (GET, POST, PUT, DELETE) and status codes (2xx, 4xx) to operate on those resources. This is where most “REST” APIs live.
Level 3 (Hypermedia — HATEOAS): The “holy grail” of REST. The API’s responses include links (hypermedia) that tell the client what they can do next. The client navigates your API by discovering these links, not by hard-coding URLs.
The eight principles I’m sharing today are a blend of my own production experience and the pragmatic wisdom from industry-leading guides like Zalando’s. These should help you move your APIs up this maturity ladder, creating designs that are more robust, scalable, and easier to use.