9.13. REST トランスレーター
タイプ名 rest によって認識される Rest translator は、REST サービスを呼び出すためのストアドプロシージャーを公開します。 このトランスレーターの結果は通常、CSV、JSON、または XML 形式のデータを使用する TEXTTABLE、JSONTABLE、または XMLTABLE テーブル関数で使用されます。
実行プロパティー
残り のインポーター設定はありませんが、VDB のメタデータを提供できます。
用途
rest translator は、Web サービスへのアクセスに関する低レベルの手順を公開します。
InvokeHTTP 手順
invokeHttp
は HTTP(S)呼び出しのバイトコンテンツを返すことができます。
Procedure invokeHttp(action in STRING, request in OBJECT, endpoint in STRING, stream in BOOLEAN, contentType out STRING, headers in CLOB) returns BLOB
Procedure invokeHttp(action in STRING, request in OBJECT, endpoint in STRING, stream in BOOLEAN, contentType out STRING, headers in CLOB) returns BLOB
action は、デフォルトで POST を指定する HTTP メソッド(GET、POST など)を示します。
エンドポイントの null 値はデフォルト値を使用します。デフォルトのエンドポイントは rest ソース設定で指定されます。エンドポイント URL は絶対または相対できます。相対的の場合は、デフォルトのエンドポイントと組み合わされます。
複数のパラメーターに値を含める必要はないため、多くの場合、名前付きパラメーター構文で invokeHttp の手順を呼び出すことがより明確です。
call invokeHttp(action=>'GET')
call invokeHttp(action=>'GET')
リクエストは SQLXML、STRING、BLOB、または CLOB のいずれかです。リクエストは、バイト形式で POST ペイロードとして送信されます。STRING/CLOB 値の場合、デフォルトは UTF-8 エンコーディングになります。バイトエンコーディングを制御するには、to_bytes 関数を参照してください。
オプションの headers パラメーターを使用して、要求ヘッダーの値を JSON 値として指定できます。JSON 値は、プリミティブまたはプリミティブ値のリストを持つ JSON オブジェクトである必要があります。
call invokeHttp(... headers=>jsonObject('application/json' as "Content-Type", jsonArray('gzip', 'deflate') as "Accept-Encoding"))
call invokeHttp(... headers=>jsonObject('application/json' as "Content-Type", jsonArray('gzip', 'deflate') as "Accept-Encoding"))
headers パラメーター設定の推奨事項:
-
HTTP POST/PUT メソッドが呼び出される場合は、
Content-Type
が必要になる場合があります。 - メディア タイプを返す場合は、accept が必要です。
Web サービストランスレーターでは、ネイティブクエリーや直接クエリーの実行手順は使用できません。
ストリーミングに関する考慮事項
stream パラメーターが true
に設定されている場合、生成される LOB 値は 1 回のみ使用できます。ストリームが null
または false
の場合、エンジンは結果のコピーを保存して繰り返し使用する必要がある場合があります。キャストや XMLPARSE
など、一部の操作として使用すると、ストリームが消費される結果の検証が実行される可能性があります。