Das Richardson Maturity Model (kurz RMM) beschreibt, wie “REST-reif” eine API ist. Es hat 4 Level (0–3).
Level 0
- HTTP wird nur als Transportprotokoll verwendet, aber keine anderen Webtechnologien (wie routen) benutzt.
- Meistens nur ein Endpoint, der im Body dann die Aktion übergibt
- “Selbst geschriebener RPC”
Beispiel:
POST /api
{ action: "get-users" }POST /api
{ action: "create-user", user: { name: "Samuel" } }Level 1 - Ressourcen
- Mehrere URLs für Ressourcen
POST /api/users/get
{ id: 1 }POST /api/users/create
{ name: "Samuel" }Level 2 - HTTP Verbs
- Die richtigen HTTP Methoden werden verwendet
- Industriestandard
GET /api/users/1POST /api/users
{ id: 1, name: "Samuel" }Level 3 - Hypermedia Controls
- Endpunkte werden dynamisch durch links erkannt
- Komplex und Industrieweit wenig verbreitet
HTTP/1.1 201 Created
Location: https://example.com/api/users/1
{ id: 1, name: "Samuel", _links: {
self: { href: "/api/users/1" },
orders: { href: "/api/users/1/orders" }
}}