20.15 EXECUTE_REST_SOURCEプロシージャ

このプロシージャは、モジュール名、操作およびURLパターン(必要な場合)に基づいて、RESTソース操作を実行します。t_parameters配列を使用して、宣言されたRESTデータ・ソース・パラメータの値を渡します。RESTソースの呼出しは、共有コンポーネントに定義されたメタデータに基づいています。

構文

PROCEDURE EXECUTE_REST_SOURCE (
    p_static_id     IN VARCHAR2,
    p_operation     IN VARCHAR2,
    p_url_pattern   IN VARCHAR2     DEFAULT NULL,
    p_parameters    IN OUT t_parameters );

パラメータ

表20-12 EXECUTE_REST_SOURCEプロシージャのパラメータ

パラメータ 説明
p_static_id RESTデータソースの静的ID。
p_operation 操作の名前(たとえば、POST、GET、DELETE)。
p_url_pattern 同じ名前の操作が複数存在する場合は、共有コンポーネントに定義されているようにURLパターンを指定して、RESTソース操作を識別します。
p_parameters

外部RESTデータ・ソースに渡すパラメータ値。

通常、RESTデータ・ソースに渡されるHTTPヘッダー、URLパターンおよびその他のパラメータは文字列であることに注意してください。T_PARAMETERS配列に追加する前に、すべての値をVARCHAR2に明示的に渡すことをお薦めします。

t_parameters OUTパラメータ値を持つ配列で、RESTデータ・ソースから受信されます。

戻り値

表20-13 EXECUTE_REST_SOURCEプロシージャの戻り値

戻り値 説明
p_parameters OUTパラメータ値を持つ配列で、RESTデータ・ソースから受信されます。

この例では、ORDSおよびAuto-REST機能(ORDS.ENABLE_OBJECT)を使用して、RESTサービスがEMP表に作成されていることを前提としています。次に、このRESTサービスのRESTデータ・ソースがORDS EMPとして共有コンポーネントに作成されます。

POST操作には、次のリクエスト・ボディ・テンプレートが定義されています。

{"empno": "#EMPNO#", "ename": "#ENAME#", "job": "#JOB#", "sal": #SAL#}

パラメータは次のように定義されています。

名前 方向 タイプ デフォルト値

EMPNO

IN

リクエスト・ボディ

該当なし

ENAME

IN

リクエスト・ボディ

該当なし

SAL

IN

リクエスト・ボディ

該当なし

JOB

IN

リクエスト・ボディ

該当なし

RESPONSE

OUT

リクエスト・ボディ

該当なし

Content-Type

IN

HTTPヘッダー

application/json

RESTソース操作を呼び出すPL/SQLコードは次のようになります。

DECLARE
    l_params apex_exec.t_parameters;
BEGIN
    apex_exec.add_parameter( l_params, 'ENAME', :P2_ENAME );
    apex_exec.add_parameter( l_params, 'EMPNO', :P2_EMPNO );
    apex_exec.add_parameter( l_params, 'SAL',   :P2_SAL   );
    apex_exec.add_parameter( l_params, 'JOB',   :P2_JOB   );

    apex_exec.execute_rest_source(
        p_static_id        => 'ORDS_EMP',
        p_operation        => 'POST',
        p_parameters       => l_params );

    :P2_RESPONSE := apex_exec.get_parameter_clob(l_params,'RESPONSE');
END;