Excerpt |
---|
Der Auruf der REST-Schnittstellen erfolgt nach einem einheitlichen Prinzip. Dieser Ansatz vereinfacht die Implementierung. |
Inhaltsverzeichnis
Table of Contents | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
...
Request
...
Der Aufruf der REST-Schnittstelle ähnelt bei jedem OSB-Dienst und hat folgenden Aufbau der URL:
...
Parameter | Bedeutung |
---|---|
SERVICEID | Stellt den OSB-Dienst dar. Dies ist nicht notwendigerweise die AppID des Dienstes. Beispiele: emm, hreflangCollector, images, pagespeedtool, websaleapp2, usw. |
ACTION | Wir Wird dem OSB-Dienst als Parameter übergeben und der Dienst reagiert kann dann entsprechend reagieren. Wenn ein Dienst eine Aktion nicht kennt, sollte immer ein HTTP-Fehlercode 400 (Bad Request) zurückgegeben werden. |
...
Code Block |
---|
"isrest=yes&action=ACTION" |
Damit die URL funktioniert, wird von der WEBSALE Technik eine entsprechende RewriteRule eingebunden:
...
Beispiele: changeemail, start, cancel, publish, build, send, usw. |
Authentifizierung
Es ist bei jedem OSB-Dienst wichtig, dass der User sich zuerst authentifiziert und dem Aufruf einen Token mitgibt. Wie ein Token beim Authentserver erzeugt wird, ist in der Dokumentation "REST Authentifizierung" beschrieben:
Token
Der Token ist ein “JSON Web Token” (JWT) und besteht aus 3 Teilen:
...
Für weitere Informationen zu JWT kann die offizielle Webseite besucht werden: https://jwt.io
Info |
---|
Der generierte Token ist nur für einen Zeitraum von 30 Minuten gültig. Sobald dieser nicht mehr gültig ist, geben alle Anfragen den Statuscode 401 zurück. Ist dies der Fall muss ein neuer Token generiert werden. |
REST-Anfrage an Dienst
Jeder Dienst mit einer REST-Schnittstelle muss über eine spezielle REST-kompatible URL aufrufbar sein.
...
Code Block | ||
---|---|---|
| ||
X-Authorization: Bearer TOKEN |
Fehlerbehandlung
Wenn ein Problem entsteht, muss ein zum Vorfall passender HTTP-Code zurückgegeben werden.
So muss immer der HTTP-Code 401 zurückgegeben werden, wenn der User auf eine Ressource ohne einen gültigen Token zugreifen möchte.
Shopzugriff
Da auch Requests aus dem Shop ausgeführt werden, wird ein für den Zweck benötigter User existieren. Dieser User muss zwingend Adminberechtigungen haben.
Um Missbrauch vorzubeugen, muss dieses Konto spezielle Regeln befolgen:
Das Konto darf nur vom internen System auf die REST-Schnittstelle zugreifen.
Das Konto darf nur über das REST-Interface mit dem AuthentServer kommunizieren.
Damit die Regeln befolgt werden, muss eine Konfigurationsdatei rest.cfg erstellt werden, die folgende Sektion beinhaltet:
Code Block |
---|
<+REST-User>
PersNr = 0000000 # Personennummer des Users
AllowBrowserLogin = no # yes/no, Flag ob Konto sich über Browser im OSB einloggen kann
+IPAllowed = 123.123.123.123 # IP-Adresse über die Request erlaubt ist
+IPAllowed = 123.123.124.* # Möglich ein IP-Block anzugeben (* nur letzter Block möglich)
</+REST-User> |
tt
Include Page | ||||
---|---|---|---|---|
|