Um zusätzliche Details bezüglich der Art des Zugriffs auf den REST-Service
anzugeben, kann im Anforderer eine Variable deklariert werden. Diese Variable basiert auf dem Schnittstellenabschnitt.
Die folgende Deklaration basiert
beispielsweise auf dem Schnittstellenabschnitt
WeatherForecast:
myService WeatherForcast {@RESTBinding {baseURI="http://www.ibm.com/gateway"}};
In dieser Deklaration können Sie eine von zwei Eigenschaften angeben, die Ihnen jeweils die
Angabe der folgenden Details ermöglicht:
- Den Anfangswert des Basis-URI, der aus einer Reihe von übergeordneten
Qualifikationsmerkmalen für die Serviceposition besteht.
- Die Sitzungscookie-ID in Form einer Zeichenfolge, die das Sitzungscookie angibt,
das ein Service für den EGL-Rich-UI-Proxy bereitstellt. Die Servicelogik ist in diesem Fall
'stateful' (d. h. mit Zustandsüberwachung), sodass Benutzer und Logik an einem mehrstufigen
Datenaustausch teilnehmen können.
Diese Einstellung ist von Bedeutung, wenn ein externer EGL-Typ ein
IBM® i- oder Serviceprogramm als EGL-REST-RPC-Service zur Verfügung
stellt oder der Anforderer eine Rich-UI-Anwendung ist. Hintergrundinformationen hierzu
finden Sie in 'Auf Programme unter IBM i als Web-Services
zugreifen'.
Bei Verwendung von
REST-Services mit Zustandsüberwachung werden die Verbindung und alle zugeordneten
IBM i-Ressourcen beibehalten, bis die Sitzung auf der Serviceseite
inaktiviert wird. Die serviceseitige Sitzung wird inaktiviert, wenn der Anforderungscode die Systemfunktion
serviceLib.endStatefulServiceSession() aufruft oder der Anwendungsserver die Sitzung
inaktiviert (üblicherweise aufgrund einer Zeitlimitüberschreitung).
Die beiden Eigenschaften lauten @RESTBinding und @BindService.
Mit der Eigenschaft @RESTBinding können Sie den Basis-URI und die Sitzungscookie-ID
direkt in Ihrem Code eingeben.
Diese Option ist einfach, aber unflexibel. Mit der Eigenschaft
@BindService können Sie diese Details in einem Implementierungsdeskriptor
angeben, wodurch Änderungen zur Konfigurationszeit möglich sind.
Die beiden Eigenschaften schließen sich gegenseitig aus:
- @RESTBinding
- Mit dieser Eigenschaft können Sie in Ihrem Code den Basis-URI und/oder die Sitzungscookie-ID
angeben. @RESTBinding enthält die folgenden Felder:
- baseURI
- Eine Zeichenfolge, die die ersten Qualifikationsmerkmale in dem URI angibt, der für den Zugriff
auf den Service verwendet wird. Der Standardwert für baseURI ist eine leere Zeichenfolge.
- sessionCookieID
- Der Name eines Sitzungscookies. Der Standardwert ist JSESSIONID. Dies ist stets die Sitzungs-ID, wenn die
Anwendung unter Apache Tomcat ausgeführt wird.
Die Einstellung des Felds
sessionCookieID ist nur in den folgenden Fällen von Bedeutung:
- Der Service ist ein externer EGL-Typ, der ein IBM i- oder Serviceprogramm
als EGL-REST-RPC-Service zur Verfügung stellt. Und:
- Die Servicelogik ist 'stateful'. Dies bedeutet, dass Anforderer und Service an einem mehrstufigen
Datenaustausch teilnehmen können.
Der Wert für dieses Feld überschreibt die Einstellung der
Builddeskriptoroption defaultSessionCookieID.
- @BindService
- Mit dieser Eigenschaft kann ein Implementierungsdeskriptoreintrag zum Angeben des Basis-URI und/oder
der Sitzungscookie-ID verwendet werden. Die Eigenschaft verfügt über ein Feld:
- bindingKey
- Gibt den Implementierungsdeskriptoreintrag an, der die beiden Details
enthält.
Die Eigenschaft
@BindService kann ohne das Feld
bindingKey angegeben werden.
In diesem Fall gibt die Eigenschaft den Implementierungsdeskriptoreintrag an, dessen Name mit dem
Namen des Schnittstellenabschnitts übereinstimmt. Im Folgenden ist ein Beispiel aufgeführt, das sich
auf den Implementierungsdeskriptoreintrag 'WeatherForecast' bezieht:
MyService WeatherForecast {@BindService{}}
Einzelheiten zur Einrichtung des EGL-Implementierungsdeskriptors finden Sie
in 'REST-Binding zum Implementierungsdeskriptor hinzufügen'.