例 14: WHERE 文節を Db2® 表に適用する
次の例では、File Manager Service Provider REST API 読み出しを実行して、Db2® WHERE 文節を使用して結果の表を制限し、その後、結果の表から最初の行を読み取ります。
この例は、サービス・アーカイブが作成され、デプロイされていることを前提とします。SAR ファイル生成時にプロパティーでテンプレートを指定していない場合、サービス・プロバイダーは動的テンプレートを作成し、表のすべての列と行を戻します。例えば、サービス・アーカイブは次のプロパティー・ファイルを使用して作成できます。
name=fmExample14
description=DFG2:DSN81010:EMP MAPPED BY MY.DB2.TEMPLATE(EMP)
version=1.0
provider=filemanager
host=10.1.1.2
port=9043
userid=admin
passwd=s3cr3t
ssid=DFG2
owner=DSN81010
tableName=EMP
timeout=300
connid=default
初回要求
Db2® データ・リソースからデータを読み取る初回 API 呼び出しには、Db2® データ・リソースへの以降のアクセスで呼び出し元を認証できるように、HTTP Basic 認証ヘッダーが必要です。例:
Authorization : Basic dXNlcmlkOnBhc3N3b3Jk
ここで、Basic キーワードに続くストリングは、userid:password の Base64 エンコードを示します。
また、JSON ペイロードがあるすべての要求でも、値が application/json
の Content-Type ヘッダーが必要です。
初回要求では、データ・リソースに命名したり、テンプレート情報を指定したりする必要はありません。この情報は API に関連付けられたサービス・アーカイブに既に含まれています。このため、API 呼び出し元が指定する必要があるのは、必要に応じて、オプションの operation パラメーターと position パラメーターのみです。
{
"operation" :
{
"numRows" : 1,
"session" : false,
"where" : "WORKDEPT = 'B01'"
}
}
この要求では、Db2® の WHERE 文節を適用した後、Db2® サブシステム DFG2 内の、DSN81010 が所有する WORKDEPT = 'B01'
表 EMP から最初の行を読み取ります。この要求により、デフォルト・テンプレートが作成され、応答で行内のすべての列が戻されます。
File Manager/Db2 が false に設定されているため、サービス・プロバイダーは session
セッションを維持しません。
成功時の応答
成功時の応答 (HTTP ステータス・コード 200) は次のようになります。
{
"rows":
[
{
"last": true,
"columns":
[
{
"PHONENO": "3476",
"EDLEVEL": 18,
"FIRSTNME": "MICHAEL",
"MIDINIT": "L",
"BIRTHDATE": "1948-02-02",
"SALARY": 41250,
"COMM": 3300,
"LASTNAME": "THOMPSON",
"WORKDEPT": "B01",
"HIREDATE": "1973-10-10",
"BONUS": 800,
"EMPNO": "000020",
"JOB": "Manager"
}
]
}
]
}
サービス・プロバイダーによって保守されているセッションがなかったため、呼び出し元は FM/Db2 セッションを終了する 2 番目の要求を出す必要はありません。