TL;DR: REST ist ein Architekturstil, der durch Einschränkungen bei den Interaktionen zwischen Komponenten definiert ist. Anhand der sechs Einschränkungen lassen sich die Client-Unabhängigkeit, der Anforderungskontext, das Caching, einheitliche Schnittstellen, Schichten und optionaler heruntergeladener Code überprüfen; eine JSON-Antwort allein beweist keine davon.
Ein Endpunkt, der eine Bestellung als JSON zurückgibt, kann dennoch jeden Client dazu zwingen, den internen Workflow des Servers zu verstehen. Die Einschränkungen der REST-API-Architektur sind die Regeln, die bestimmen, ob diese Interaktionen dem „Representational State Transfer“ folgen oder lediglich HTTP nutzen. Sie betreffen, was die Beteiligten voneinander wissen müssen, wie sie Repräsentationen austauschen und wie unabhängig voneinander sie sich ändern können.
Stellen Sie sich einen Collector vor, der einen Produktkatalog ausliest. Er muss Datensätze abrufen, eine weitere Seite ermitteln, ein unverändertes Ergebnis erkennen und den Vorgang fortsetzen, wenn ein Worker ausfällt. Diese Anforderungen machen architektonische Entscheidungen sofort deutlich. Enthält die nächste Anfrage ihren eigenen Kontext? Kann der Server die nächste Seite ankündigen? Ist eine gespeicherte Antwort wiederverwendbar? Muss der ersetzende Worker eine unsichtbare Konversation wiederherstellen, bevor er fortfahren kann?
Dieser Leitfaden nutzt diese Fragen als Grundlage für eine Entwurfsüberprüfung. Die Beispiele beschreiben einen hypothetischen Katalogdienst, nicht die ausführbare API eines Anbieters. Sie zeigen, wie man das Verhalten untersucht, ohne REST auf mehrere Endpunktnamen oder eine Liste von HTTP-Verben zu reduzieren. Sie können dieselbe Überprüfung auf eine von Ihnen veröffentlichte API, eine von Ihnen gepflegte Integration oder eine Datenerfassungspipeline anwenden, die den Dienst eines anderen nutzt.




