2014-10-16 4 views
5

Ich bin neu in RESTful APIs und überall habe ich gelesen, dass REST-APIs "hypertextgesteuert" sein müssen. Ich habe viel gegoogelt, aber keine konkrete Erklärung für das Konzept gefunden. Also:Was bedeutet es, dass REST hypertextgesteuert sein sollte?

In der Praxis bedeutet das, dass REST-APIs "hypertext-getrieben" sein sollten.

Antwort

10

When I say hypertext, I mean the simultaneous presentation of information and controls such that the information becomes the affordance through which the user (or automaton) obtains choices and selects action. Roy T. Fielding - http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Es handelt sich um eine der grundlegenden Einschränkungen der REST-Architektur - Hypermedia als Motor der Application State (abgekürzt HATEOAS). Dies bedeutet, dass der Kunde, der auf der Hypermedia-Darstellung der aktuellen Ressource basiert, zu jedem Zeitpunkt über alle Informationen verfügen muss, die er benötigt, um zu entscheiden, wohin er als nächstes reisen soll (Änderung des Anwendungsstatus). Hypermedia-Steuerelemente in Hypertexten verbinden Ressourcen miteinander und beschreiben ihre Fähigkeiten auf maschinenlesbare Weise. Ein REST-Client muss nur eines wissen, um mit dem REST-Server zu kommunizieren - das Verständnis von Hypermedia. Im Gegensatz dazu interagieren Clients und Server in einer serviceorientierten Architektur (SOA) über eine feste Schnittstelle, die durch Dokumentation oder eine Schnittstellenbeschreibungssprache (IDL) gemeinsam genutzt wird.

HATEOAS entkoppelt Client und Server, so dass sie separat entwickelt werden können.

Zum Beispiel

Wenn Sie einen ersten Anruf zu einem Rest-Service machen einen Kunden mit einigen URL/Kunden hinzufügen/dann werden Sie wieder eine Antwort erhalten (man denke an die Kunden erfolgreich hinzugefügt wurde),

HTTP/1.1 201 Created 
Location: http://www.myREST/customers/<uuid>/ 

Nun weiß der Client, der den Anruf zum Hinzufügen eines Kunden getätigt hat, wie er den entsprechenden Kunden über den als Antwortkopf zurückgegebenen Link findet.

Sie können fragen, woher weiß Client, dass er POST zu/customer/machen kann. Mit anderen Mitteln - Hypermedia-Steuerungen, DSL-spezifische Formate und Profile.

0

REST bedeuten, dass api folgen korrekte Verwendung für HTTP-Verben, Statuscode, etc. HTTP-Protokoll, hat Verben wie: GET, POST, PUT, OPTIONS und DELETE. In einer Ruhepi wird jedes Verb einer bestimmten Aktion auf der Ressource zugeordnet. Zum Beispiel: POST erstellt immer eine neue Instanz der Ressource; GET erhält die Ressource (oder eine Liste), DELETE ist immer die zugeordnete Ressource; PUT ist ändern/aktualisieren eine vorhandene Ressource ..... Plus, sollten Sie den Statuscode für die Antwort verwenden: 201 zu erstellen, 200 zu ändern, etc.

Sie können weitere Informationen zu http://restinpractice.com/book/ (Jim Weber Buch)

+0

Nein, "REST" ist nicht "HTTP richtig ausführen". Letzteres ist gut, aber REST fügt viel mehr Aspekte hinzu. –

+0

Danke. Wenn ich richtig gesagt habe, ich meine, angeeigneter Gebrauch in einer API. Danke noch einmal. –

Verwandte Themen