プロシージャル コードの組み込み

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示します。

JavaScript、Java、Python などのプロシージャル言語でコードを追加し、そのコードを API プロキシの他の部分から呼び出すことができます。プロシージャル コードのサポートは、フロー変数、障害、リクエスト本文、レスポンス本文の複雑な処理を簡単に実装できるよう設計されています。

プロシージャル コードでは、次のことができます。

  • 複雑な本文の値(リクエストおよびレスポンスの値)を作成または操作する。
  • URL を書き換える(ターゲット エンドポイント URL をマスクするなど)。
  • 含まれているポリシーにない、他のロジックを追加する。

仕組み

含まれているコードに対するプロキシフローから呼び出しを行うために、言語に固有のポリシーを使用します。サポート対象の各言語に対し、Apigee には別々のポリシー(JavaScript ポリシーJavaCallout ポリシーPythonScript ポリシー)があります。

以下に、これが機能する方法の 1 つをまとめます。詳細については、必ずポリシー リファレンスを確認してください。

  1. 別のファイルで、使用するコードを記述します。
  2. コードの中で、コードの処理の結果を Apigee フロー変数に入れます。

    変数の値は、API プロキシ内の他の部分で取得します。フロー変数の詳細については、フロー変数を使用したプロキシ状態の管理をご覧ください。

  3. ファイル(または JAR)をリソース ファイルとして API プロキシに追加します。

    リソース ファイルの詳細については、リソース ファイルをご覧ください。

  4. 使用している言語に対応するポリシーを追加します。

    ポリシーを構成して、API プロキシのフローの任意の場所からコードに対する呼び出しを行うようにします。

  5. ポリシーを使用してフロー変数からコードの値を取得します。

制限事項

Apigee セキュリティ モデルでは、ネットワーク I/O、ファイル システムの読み取り / 書き込み、現在のユーザー情報、プロセスリスト、CPU / メモリ使用率などのシステム呼び出しは許可されません。このような呼び出しには機能するものもありますが、サポート対象外のため、常に無効にしておく必要があります。上位互換性を維持するため、このような呼び出しはコード内に作成しないでください。

サポート対象の言語ごとに、他の制限事項が存在する場合があります。言語に対応するポリシー リファレンスの説明をご覧ください。

サポートされている言語

JavaScript

JavaScript のサポートには、API プロキシに固有の変数と値を処理するための完全なオブジェクト モデルが含まれています。詳しくは、JavaScript オブジェクト モデルをご覧ください。

ポリシー リファレンス情報と例については、JavaScript ポリシーをご覧ください。

Java

Java コールアウト ポリシーを使用して、プロキシのフローから Java コードを呼び出します。ポリシー リファレンスのトピックに例が含まれています。

Python

Python Script ポリシーを使用して、Python コードを呼び出します。