Variable für Zugriff auf einen REST-Service deklarieren
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.
myService WeatherForcast {@RESTBinding {baseURI="http://www.ibm.com/gateway"}};
- 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.
- @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'.