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/1
POST /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" }
}}