Was ist REST?
Repräsentative Zustandsübertragung. Es beschreibt, wie ein System den Status mit einem anderen System kommunizieren kann. Ein Beispiel wäre der Status eines Produkts (Name, Beschreibung usw.), der als XML, JSON oder einfacher Text dargestellt wird. Die verallgemeinerte Staatsidee wird als Ressource bezeichnet.
Welche Position nimmt es in einem Web-Architektur-Ökosystem ein?
REST wird üblicherweise mit der Web-Service-Schnittstelle assoziiert, da HTTP das bei weitem häufigste Carrier-Protokoll ist. Im 7-Schichten-Modell ist es auf der Anwendungsschicht vorhanden . Siehe jedoch den nächsten Abschnitt.
Wie eng (oder locker) ist es mit dem Protokoll verbunden?
REST ist kein HTTP. Es verwendet HTTP, weil in seiner allgemeinsten Form REST existiert, um eine Maschine bei der Abbildung des Konzepts eines Verbs gegen eine beliebige Sammlung von Substantiven zu unterstützen. HTTP enthält eine Reihe nützlicher allgemeiner Verben (GET, PUT, PATCH usw.), die auf beliebige Substantive angewendet werden können, die mit HTTP als URI ausgedrückt werden (z . B. GET http://example.org/Product(54 ).
Was sind die Alternativen zu REST und wie vergleicht sich REST mit ihnen?
Dies ist vergleichbar mit der Frage: "Wie rastvoll ist mein Ansatz?" Verwenden Sie die folgende Liste (zusammengefasst aus dem Richardson Maturity Model, wie von Martin Fowler beschrieben ):
Level 0 - Der POX-Sumpf
Verwenden Sie POST für alles (liest, schreibt, löscht). Dies ist SOAP, POX, RPI usw. Sie verwenden HTTP lediglich als Tunnel für Ihr eigenes Protokoll. Sie richten sich an einen einzelnen Endpunkt, der alles basierend auf dem Inhalt des Anforderungshauptteils ausführt.
Ebene 1 - Ressourcen
Verwenden Sie POST für alles. Targeting mehrerer Endpunkte, um Informationen zu einer bestimmten Sache bereitzustellen. Sie haben gerade Ressourcen entdeckt.
Stufe 2 - HTTP-Verben
Verwenden Sie HTTP-Verben für Ressourcen. Jetzt bekommst du es. POST ist zu erstellen, PUT ist zu überschreiben, OPTIONEN für verfügbare Operationen, LÖSCHEN, um die Ressource zu löschen. Infolge der Verwendung dieser Verben werden verschiedene HTTP-Statuscodes relevanter (202 AKZEPTIERT?).
Stufe 3 - Hypermedienkontrolle ( HATEOAS )
An dieser Stelle machen Sie den letzten Sprung und führen Hypermedien als Flusskontrollmechanismus ein. Ein REST-Client benötigt keine Vorkenntnisse zur Interaktion mit einer bestimmten Anwendung oder einem bestimmten Server, die über ein allgemeines Verständnis von Hypermedia hinausgehen. Dies kann in HTTP über das Feld Content-Type-Header kommuniziert werden. Zu den Textformaten gehören AtomPub und ( präzisere ) HAL , während HyperAudio für Audiostreams gut geeignet ist (siehe SoundCloud et al.)