In letzter Zeit bin ich daran interessiert, mich mit REST vertraut zu machen. Ich habe versucht, einen Wiki-Eintrag auf REST zu lesen , aber es hat mir nicht geholfen. Ich würde es wirklich schätzen , wenn jemand in einfachem Englisch erklären kann (dh ohne unnötigen Tech - Jargon)
- Was ist REST
- Welche Position nimmt es im Ökosystem der Webarchitektur ein?
- Wie eng (oder locker) es mit dem Protokoll gekoppelt ist.
- Was sind die Alternativen zu REST und wie vergleicht sich REST mit ihnen?
Ich verstehe, dass es möglicherweise nicht möglich ist, diese Frage in einem oder zwei Absätzen zu beantworten. In diesem Fall werden relevante Links sehr geschätzt.
Antworten:
Einfaches Englisch:
Repräsentativ: das Sprechen oder Handeln für jemanden.
State Transfer: Übertragungsstatus.
Technisch:
REST vs SOAP
quelle
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.)
quelle
state transfer
keine Vertretung. Das Sprechen oder Handeln für jemanden ist eine Repräsentation, wie es in diesem Kontext funktioniert.Während REST eine Abkürzung für Representational State Transfer ist, ist es möglicherweise einfacher, die Idee in Betracht zu ziehen, verschiedene Aktionen über eine etwas intuitive Oberfläche auszuführen.
Beispielsweise könnte eine URL wie http://www.meinesite.com/FindProduct/125/ als eine Person interpretiert werden, die Informationen zum Produkt mit der ID 125 erhalten möchte.
Während REST normalerweise in Bezug auf HTTP gedacht wird, könnte das Konzept auf andere Protokolle angewendet werden, wie in der Wikipedia-Referenz angegeben.
Andere Beispiele für REST, die nützlich sein können:
quelle