REST サービスにアクセスするための変数の宣言
REST サービスへのアクセス方法に関する詳細を指定するには、リクエスターで変数を宣言します。この変数は、インターフェース・パーツに基づいています。
例えば、インターフェース・パーツ WeatherForecast に基づく宣言の例を以下に示します。
myService WeatherForcast {@RESTBinding {baseURI="http://www.ibm.com/gateway"}};
この宣言では、2 つのプロパティーのいずれかを指定できます。これらのそれぞれのプロパティーは、以下の詳細を指定するための方法を提供します。
- ベース URI の初期値。これは、サービス・ロケーションの高位修飾子のセットです。
- セッション Cookie ID。これは、サービスから EGL Rich UI プロキシーに提供されるセッション Cookie を識別するストリングです。この場合のサービス・ロジックはステートフルで、これは、ユーザーとロジックがマルチステップの会話に参加できることを意味します。この設定は、EGL 外部型が IBM® i プログラムまたはサービス・プログラムを EGL REST-RPC サービスとして使用できるようにする場合や、リクエスターが Rich UI アプリケーションである場合に役立ちます。バックグラウンド情報については、
『IBM i プログラムに Web サービスとしてアクセスする』を参照してください。
ステートフル REST サービスを 使用すると、接続および関連するすべての IBM i リソースは、サービス・サイド のセッションが無効になるまで保持されます。 サービス・サイドのセッションが無効になるのは、要求コードが serviceLib.endStatefulServiceSession() システム関数を呼び出したときか、通常はタイムアウトにより、アプリケーション・サーバーがセッションを無効化したときです。
2 つのプロパティーは、@RESTBinding と @BindService です。 @RESTBinding プロパティーを使用すると、ベース URI とセッション Cookie ID をコードで直接指定できます。このオプションは単純ですが、柔軟性はありません。@BindService プロパティーを使用すると、デプロイメント記述子でそれらの詳細情報を指定できるため、構成時に変更が可能です。
この 2 つのプロパティーは相互に排他的です。
- @RESTBinding
- コード内で、そのコードのベース URI とセッション Cookie ID、またはその両方を指定する場合は、このプロパティーを使用します。@RESTBinding には、以下のフィールドが含まれています。
- baseURI
- サービスにアクセスするために使用される URI で最初の修飾子を識別するストリング。baseURI のデフォルト値は空ストリングです。
- sessionCookieID
- セッション Cookie の名前。デフォルト値は JSESSIONID で、これは常に、アプリケーションを Apache Tomcat で実行するときのセッション ID です。sessionCookieID フィールドの設定は、次の場合のみ有効となります。
- サービスが、IBM i 呼び出し先プログラムまたはサービス・プログラムを EGL REST-RPC サービスとして使用可能にする EGL 外部型である場合。
- サービス・ロジックはステートフル で、これは、リクエスターとサービスがマルチステップの会話に参加できることを意味します。
このフィールドの値は、defaultSessionCookieID ビルド記述子オプションの設定をオーバーライドします。
- @BindService
- ベース URI を識別するデプロイメント記述子項目、Cookie セッション ID、またはその両方を使用する場合は、このプロパティーを使用します。プロパティーには、以下の 1 つのフィールドがあります。
- bindingKey
- 2 つの詳細を含むデプロイメント記述子項目を識別します。
bindingKey フィールドを指定せずに @BindService プロパティーを指定することができます。 この場合、プロパティーはインターフェース・パーツと同じ名前のデプロイメント記述子項目を示します。以下に、この使用法の例を示します。ここでは、WeatherForecast という名前のデプロイメント記述子項目が参照されています。MyService WeatherForecast {@BindService{}}EGL デプロイメント記述子のセットアップについて詳しくは、『デプロイメント記述子への REST バインディングの追加』を参照してください。