Was ist REST (in einfachem Englisch) [geschlossen]

84

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)

  1. Was ist REST
  2. Welche Position nimmt es im Ökosystem der Webarchitektur ein?
  3. Wie eng (oder locker) es mit dem Protokoll gekoppelt ist.
  4. 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.

Gaurav
quelle
6
Versuchen Sie dies - tomayko.com/writings/rest-to-my-wife
talonx
Ich finde das informativ, aber nicht zu detailliert: ibm.com/developerworks/webservices/library/ws-restful
NoChance
Ich frage mich, ob diese Fragen als beantwortet angesehen werden können.
Gary Rowe
@GaryRowe Ich hatte eine Antwort markiert. Vermutlich wurde sie aus irgendeinem Grund entfernt. Ich verstehe diese Seite nicht.
Gaurav
1
Keine der folgenden Antworten verwendet das Wort "idempotent". Sie sollten nachschlagen: Idempotenz ist ein wichtiger Aspekt jeder RESTful-Architektur.
Solomon Slow

Antworten:

10

Was ist REST (in einfachem Englisch)

Einfaches Englisch:

Repräsentativ: das Sprechen oder Handeln für jemanden.
State Transfer: Übertragungsstatus.


Technisch:

  • Wir übertragen kein tatsächliches Objekt, sondern eine Darstellung in einer Form (z. B. eine XML / JSON / Text zur Darstellung einer Datenbanktabelle).
  • RESTs zum Offenlegen einer öffentlichen API über das Internet zur Verarbeitung von CRUD-Vorgängen für Daten. REST konzentriert sich auf den Zugriff auf benannte Ressourcen über eine einzige konsistente Schnittstelle.
  • REST ist representes über einige Medientypen. Einige Beispiele für Medientypen sind XML, JSON und RDF.
  • REST ist ein Architekturstil für ressourcenorientierte Architektur (ROA) , keine Spezifikation oder Norm.
  • Architektonischer Stil bedeutet, es ist ein Konzept, eine Theorie (und wie es umgesetzt wird, liegt bei Ihnen)
  • Alles wird durch einen eindeutigen Endpunkt identifiziert. Dh es gibt einen Endpunkt für jede Ressource (Daten).
  • Der Endpunkt besteht aus einem Domänennamen mit einer Ressourcenadresse.

REST vs SOAP

Premraj
quelle
43

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.)

Gary Rowe
quelle
Sie sagen, "REST ist nicht HTTP", aber Roy Fielding scheint ziemlich fixiert auf die Idee zu sein, dass Hypertext eine Voraussetzung ist, was mit dem gesamten HATEOAS-Geschäft zu tun ist, ohne das Sie - seiner Meinung nach - kein "richtiges" REST machen. Während Hypertext! = HTTP, frage ich mich, wie viel Sie tatsächlich außerhalb von HTTP tun können ...
Andres F.
Entsprechend ( roy.gbiv.com/untangled/2008/… ) macht Roy Fielding den Punkt, dass Hypertext oder dessen Teilmenge Hypermedien außerhalb von HTML ausgedrückt werden können, solange es irgendeine Art von Verlinkung unterstützt.
Gary Rowe
3
HTTP funktioniert gut mit REST, da es standardisierte Verben für die Arbeit mit URIs bietet, die Substantive in REST in einem zustandslosen Protokoll darstellen. Ideal. In seiner Dissertation ( ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm ) stellt er jedoch fest, dass "REST die Kommunikation nicht auf ein bestimmtes Protokoll beschränkt, sondern die Schnittstelle zwischen Komponenten und damit den Umfang von Interaktions- und Implementierungsannahmen, die andernfalls zwischen Komponenten gemacht werden könnten. " Daher ist es unwahrscheinlich, dass eine vollständige FTP-Implementierung ohne clientseitige Statusverwaltung REST-konform ist.
Gary Rowe
2
+1 für den Martin Fowler Link. Wie üblich hat Martin Fowler einen Artikel verfasst, der ein Konzept so klar und präzise wie möglich beschreibt
Tom Carter,
Sie deckten state transferkeine Vertretung. Das Sprechen oder Handeln für jemanden ist eine Repräsentation, wie es in diesem Kontext funktioniert.
Premraj
11

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:

JB King
quelle
2
Vielen Dank für den Link zu "Learn REST: A Tutorial"! Das ist das erste Tutorial, das ich gelesen habe und das mir das Gefühl gibt, etwas Konkretes gelernt zu haben. Alles andere, was ich gelesen habe (einschließlich des Wikipedia-Artikels), beschreibt REST nur auf abstrakteste Weise, umgeben von Fachjargon.
Avian00
Der erste Link funktioniert nicht. Deine Antwort ist trotzdem hilfreich !!
Enthusiast