22.01.2014 Aufrufe

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

2.7 REST und RESTful Web Services 25<br />

änderten Schnittstelle. Eine weitere Einschränkung ist die Verwendung von Zwischenspeicherung<br />

(engl. Caching): behandelte Anfragen können mit der Information bereichert werden, ob sie für die<br />

Zwischenspeicherung geeignet sind oder nicht.<br />

Zu der Abstraktion oder “Automatisierung” des Kommunikationsvorgangs zählt auch die Benutzung<br />

von Hypermedia (wie beispielsweise Hyperlinks in einem Hypertext). Deswegen soll eine Antwort<br />

Referenzen zu weiter verknüpften Ressourcen oder noch verwendbaren Operationen zu dem aktuellen<br />

Ressourcen-Typ enthalten. Dadurch wird der Vorgang “automatisch” gesteuert, indem der Client<br />

nur entlang der vorgeschlagenen, weiteren Verknüpfungen navigieren sollte, um sich der Antwort<br />

zur formulierten Anfrage zu nähern. Für den Umgang mit Hypermedia werden in der Praxis sogenannte<br />

Hypertext Application Languages wie HAL 7 oder Hypermedia Types wie Collection+JSON 8<br />

entwickelt. Diese sind als Vorschläge an den W3C eingereicht worden.<br />

Nah verknüpft mit REST sind RESTful Web Services (auch als ein RESTFul Web API bekannt),<br />

die mittels der REST Prinzipien HTTP-basierte Web Services definieren. Das erste Merkmal eines<br />

RESTful Web Service ist die Basis-URI, die definiert, an welcher URI die HTTP Anfragen formuliert<br />

werden müssen. Um auf eine bestimmte Ressource zuzugreifen, muss normalerweise die Basis-URI<br />

mit dem Namen der gewünschten Ressource ergänzt werden.<br />

Zusätzlich enthalten die Web Services, wie oben aufgeführt, auch präzise Angaben der unterstützten<br />

Repräsentationen der Ressourcen – z.B. JSON, XML o.Ä. Das genannte Vokabular von HTTP-<br />

Methoden muss auch vorhanden sein: ein Web Service veröffentlicht auch seine unterstützten HTTP<br />

Methoden, z.B. kann die Beschreibung des Web Services deutlich machen, dass beispielsweise das<br />

HTTP Verb PUT nicht unterstützt wird. Ein letzter Aspekt eines RESTful Web Services ist die<br />

Hypermedia-gesteuerte Entdeckung von weiteren möglichen Pfaden bzw. URIs.<br />

Ein Unterschied eines RESTful Web APIs zu beliebigen Web Services wird auch durch die Benutzung<br />

von sogenannten “Clean URIs” eindeutig. Ein Clean URI oder ein “Benutzerfreundlicher<br />

URI” enthält kein Query String (ein durch ein Fragezeichen getrennter Bestandteil), sondern nur das<br />

verwendete Protokoll (z.B. http) und die Domäne (die Autorität, wie z.B. iana.org). Der Unterschied<br />

wird mit der Vorstellung eines Beispieles dargestellt:<br />

Eine Query-String basierte URI wie http://iana.org/service.jsp?cat=int&id=registrar<br />

ist äquivalent zu der bereinigten Variante http://iana.org/service/int/registrar.<br />

Vorteilhaft an Clean URIs ist die Beständigkeit: wenn die Ressource immer noch existiert, wird die<br />

URI für eine lange Zeit noch erreichbar sein. Zugleich lässt sich ein Clean URI leichter und logischer<br />

eingeben und behalten.<br />

Zusammenfassend lassen sich die REST Prinzipien für die Bereitstellung von REST-basierten Web<br />

Services anwenden, die in dieser Arbeit eine wichtige Rolle für die Kommunikation zwischen Frontend<br />

und Backend spielen wird, wie im Abschnitt 5.2.1 erläutert wird. Zugleich lässt sich mithilfe von<br />

REST Web Services auch der Prinzip von Service Discovery umsetzen, wie es in dem kommenden<br />

Paragraph vorgestellt wird.<br />

7<br />

http://stateless.co/hal_specification.html<br />

8<br />

http://www.amundsen.com/media-types/collection/

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!