例 7: WHERE 文節を Db2® 表に適用する
次の例では、File Manager Service Provider REST API 読み出しを実行して、Db2® WHERE 文節を使用して結果の表を制限し、その後、結果の表から最初の行を読み取ります。
初回要求
Db2® データ・リソースからデータを読み取る初回 API 呼び出しには、Db2® データ・リソースへの以降のアクセスで呼び出し元を認証できるように、HTTP Basic 認証ヘッダーが必要です。例:
Authorization : Basic dXNlcmlkOnBhc3N3b3Jk
ここで、Basic キーワードに続くストリングは、userid:password の Base64 エンコードを示します。
また、JSON ペイロードがあるすべての要求でも、値が application/json
の Content-Type ヘッダーが必要です。
初回の要求では、データをマップするために、Db2® サブシステムの名前、Db2® 表の所有者、Db2® 表の名前、および File Manager/Db2 テンプレート (オプション) も必要です。テンプレートを指定しない場合、サービス・プロバイダーは動的テンプレートを作成し、表のすべての列と行を戻します。
WHERE 文節は、Db2® セッションを開始し、セッションの結果表を作成する初回の API 要求でのみ有効です。
{
"resource" :
{
"ssid" : "DFG2",
"owner" : "DSN81010",
"tableName" : "EMP"
},
"template" :
{
"templateName" : "DB2.TEMPLATE(EMPTMPL)"
},
"operation" :
{
"numRows" : 1,
"session" : false,
"where" : "WORKDEPT = 'B01'"
}
}
この要求では、Db2® の WHERE 文節を適用した後、Db2® サブシステム DFG2 内の、DSN81010 が所有する WORKDEPT = 'B01'
表 EMP の先頭から最初の行を読み取ります。この要求では、FM/Db2 テンプレート DB2.TEMPLATE(EMPTMPL) を使用して、応答で行列をマップアウトします。
File Manager/Db2 が false に設定されているため、サービス・プロバイダーは session
セッションを維持しません。
成功時の応答
成功時の応答 (HTTP ステータス・コード 200) は次のようになります。
{
"rows":
[
{
"columns":
[
{
"column": "EMPNO",
"type": "CH(6)",
"value": "000020"
},
{
"column": "FIRSTNME",
"type": "VC(12)",
"value": "MICHAEL"
},
{
"column": "LASTNAME",
"type": "VC(15)",
"value": "THOMPSON"
},
{
"column": "WORKDEPT",
"type": "CH(3)",
"value": "B01"
},
{
"column": "JOB",
"type": "CH(8)",
"value": "Manager"
},
{
"column": "SALARY",
"type": "DEC(9,2)",
"value": 41250
}
]
}
]
}
サービス・プロバイダーによって保守されているセッションがなかったため、呼び出し元は FM/Db2 セッションを終了する 2 番目の要求を出す必要はありません。