Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
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/