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

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

手続き型コードでできることを、以下に示します。

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

仕組み

言語に固有のポリシーを使用するのは、含まれているコードに対してプロキシフローから呼び出しを行うためです。サポート対象の各言語に対し、Apigee Edge にはそれぞれ JavaScript ポリシーJava Callout ポリシーPython Script ポリシーが含まれます。

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

  1. 個々のファイルに、使用するコードを書き込みます。
  2. コードの中で、コードの処理の結果を Apigee Edge フロー変数に挿入します。

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

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

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

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

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

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

制限事項

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

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

サポートされている言語

JaveScript

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

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

サンプルコードについては、サンプルリストで JavaScript が含まれているものを検索してください。

Java

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

以下のトピックもご覧ください。

サンプルコードについては、サンプルリストで Java が含まれているものを検索してください。

Python

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

サンプルコードについては、サンプルリストで含まれている Python を使って検索してください。