API プロキシ クックブック パターン

このトピックでは、Apigee Edge クックブックのサンプルで使用した API プロキシの開発パターンについて説明します。クックブック サンプルの増加に合わせて、このトピックにパターンを追加していく予定です。

JavaScript HTTP クライアント パターン

JavaScript HTTP クライアント パターンは、Apigee Edge でサーバー側マッシュアップを作成するために使用できるパターンの 1 つです。Apigee の JavaScript オブジェクト モデルを使用すると、API プロキシフローに直接 JavaScript コードを作成できます。オブジェクト モデルの httpClient オブジェクトを使用すると、JavaScript を使用してバックエンド サービスを呼び出し、結果を取得できます。

JavaScript HTTP クライアント クックブックのサンプルでは、この API プロキシ パターンを説明しています。このサンプルでは、JavaScript HTTP クライアントを使用して、複数のバックエンド サービスを呼び出しています。結果が収集され、マッシュアップされ、1 つの JSON オブジェクトとして返されます。JavaScript HTTP クライアントは、ポリシーとして ProxyEndpoint に関連付けられます。このパターンの場合、TargetEndpoint は不要です。JavaScript HTTP クライアントがバックエンド ターゲットとのすべての通信を処理します。

JavaScript HTTP クライアント パターンの完全な例については、HTTP クライアントを JavaScript で実装するをご覧ください。

ポリシー作成パターン

ポリシー作成は、ポリシーを使用して複数のバックエンド ターゲットからの結果を 1 つのレスポンスに結合する Apigee API プロキシ パターンです。ポリシー作成では、ポリシーを使用してマッシュアップを作成できます。

ポリシー作成パターンの中心となるのが ServiceCallout ポリシーです。ServiceCallout ポリシーは、バックエンド API またはサービスに対する HTTP クライアントとして機能します。ただし、完全に機能させるため、ServiceCallout は他のポリシーに依存してリモート API またはサービスとのやり取りを行っています。ServiceCallout から送信されるリクエスト メッセージの生成や、リモート API またはサービスからのレスポンス メッセージに含まれるコンテンツの解析には他のポリシーが使用されます。

ポリシー作成クックブック サンプルでは、AssignMessageServiceCalloutExtractVariables の 3 つのポリシーを使用しています。これらのポリシーは、バックエンドに送信するリクエスト メッセージ、バックエンドにメッセージをルーティングするクライアント、各 API からのレスポンスを解析し、レスポンス データに変数を割り当てるメッセージ パーサーをカプセル化します。すべての呼び出しが行われた後、収集された変数が結合され、1 つの JSON オブジェクトとして返されます。

この 3 つのポリシーについて簡単に説明します。

  • AssignMessage: リクエスト メッセージを作成し、HTTP ヘッダーとクエリ パラメータを挿入して、HTTP 動詞を設定します。
  • ServiceCallout: AssignMessage ポリシーで作成されたメッセージを参照して、外部呼び出しのターゲット URL を定義し、ターゲット サービスから返されるレスポンス オブジェクトの名前を定義します。
  • ExtractVariables: 通常、ServiceCallout ポリシーによって生成されたメッセージを解析する JSONPath または XPath 式を定義します。その後、このポリシーは ServiceCallout レスポンスからの解析済みの値を格納する変数を設定します。

ポリシー作成パターンの詳細なサンプルについては、ポリシー作成の使用をご覧ください。