Wenn Sie als Entwickler zum ersten Mal mit REST-Services arbeiten, müssen Sie mit den Details
dieses Servicestils vertraut sein. Eine Einführung in REST finden Sie in 'Architekturstile in Web-Services'.
Ressource, Darstellung, URI und Aktion
Aus der Sicht des Entwicklers
basiert REST auf den folgenden Grundgedanken:
- Zu einem bestimmten Zeitpunkt verfügt eine Ressource, wie beispielsweise eine Datenbankzeile
mit Mitarbeiterdaten, über eine Darstellung. Eine Darstellung kann aus einer Gruppe von Programmwerten bestehen,
die Personalnummer, Titel und Gehalt eines Mitarbeiters angeben.
- Die Ressource verfügt darüber hinaus über einen URI (Universal Resource Identifier). Dies ist
ein eindeutiger Name, z. B. http://www.example.com/gateway/employee/0020.
In diesem Fall lautet die Personalnummer 0020. Im Allgemeinen ordnet der URI der Ressource einen Namen
zu. Außerdem enthält der URI das Hauptdetail, das für den Zugriff auf einen REST-Service erforderlich ist.
- Eine Aktion gibt an, was mit der Ressource geschehen soll.
Mögliche Aktionen sind das Erstellen, Lesen, Aktualisieren oder Löschen der
Ressource.
Der Anforderer eines REST-Service gibt eine Ressource und eine Aktion
an. Beinhaltet die Aktion das Erstellen oder Aktualisieren einer Ressource, stellt der Anforderer
eine Darstellung der Ressource bereit.
Pfadvariablen und Abfragezeichenfolgen
In
HTTP kann ein URI die gewünschte Ressource folgendermaßen angeben:
- Der URI kann Pfadvariablen enthalten, deren Werte die Ressource direkt
angeben, ohne dass ein Service die Eingabe zur Bestimmung der Ressource
verarbeiten muss. Im folgenden Beispiel ist die Personalnummer 0020 der Wert einer
Pfadvariablen:
http://www.example.com/gateway/employee/0020
Pfadvariablen sind in den
meisten Fällen geeignet. Es ist möglich, mehrere Pfadvariablenwerte zu verwenden, die durch Schrägstriche
voneinander getrennt werden. Die Verwendung mehrerer Werte auf diese Weise weist auf eine hierarchische
Beziehung hin. Die Pfadvariablenwerte im folgenden URI geben beispielsweise einen Unternehmensbereich
(Consumer) und innerhalb dieses Unternehmensbereichs eine Abteilung (Sales)
an:
http://www.example.com/gateway/employee/Consumer/Sales
Wenn Sie für den
Zugriff auf die REST-Services eines anderen Herstellers Code in EGL schreiben, erstellen Sie eine
URI-Vorlage,
die den letzten Abschnitt eines URI darstellt. In der folgenden Beispielvorlage ist
employeeNumber
eine Pfadvariable:
"/gateway/employee/{employeeNumber}"
In einer URI-Vorlage werden die Namen von Pfadvariablen in geschweifte Klammern gesetzt.
- Im Zusammenhang mit einer GET-Operation kann der URI durch eine Abfragezeichenfolge ergänzt
werden, die eine Gruppe von Name/Wert-Paaren darstellt. Im folgenden Beispiel steht vor der Abfragezeichenfolge
ein Fragezeichen (?) und die Name/Wert-Paare sind durch ein Et-Zeichen (&) voneinander
getrennt:
http://www.example.com/gateway/employee?division=Consumer&department=Sales
Eine
Abfragevariable ist ein Platzhalter für einen Wert in der Abfragezeichenfolge.
Bei der Erstellung einer URI-Vorlage in EGL wird zur Angabe von Abfragevariablen dieselbe Syntax wie für
Pfadvariablen verwendet. Im folgenden Beispiel sind
divisionName und
departmentName
Abfragevariablen:
"/gateway/employee?division={divisionName}&department={departmentName}"
Im Vergleich zu Pfadvariablen ist die Verwendung von Abfragezeichenfolgen ist nicht so ideal, da sie weniger
REST-konform sind. Die Verwendung von Abfragezeichenfolgen ist vor allem dann nützlich, wenn ein Service
als Eingabe für die Servicelogik Name/Wert-Paare verwendet.
In diesem Fall kann die Logik anhand der Eingabe
feststellen, auf welche Ressource zugegriffen werden muss.