API プロキシの開発

このページは ApigeeApigee ハイブリッドに適用されます。

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

Apigee で API を公開するには、API プロキシを実装します。API プロキシは、アプリ側の API をバックエンド サービスから切り離して、これらのアプリがバックエンド コードの変更の影響を受けないようにします。

以下の各セクションで説明するように、Cloud Code で Apigee を使用して API プロキシを開発します。Apigee ワークスペースでのフォルダとファイルの管理もご覧ください。

API プロキシの作成

{code_name}} で Apigee を使用して API プロキシを作成するには:

  1. 次のいずれかの操作を行います。

    • Apigee セクションで、apiproxies フォルダにカーソルを合わせて、作成アイコン をクリックします。

      apiproxies フォルダの上にカーソルを合わせると + が表示される

    • [View] > [Command Palette] を選択して、コマンド パレットを開き、[Cloud Code: Create Apigee proxy bundle] を選択します。

    [Create Proxy] ウィザードが開きます。

  2. 次のオプションのいずれかを選択します。

    種類 説明
    Reverse proxy

    インバウンド リクエストを既存の HTTP バックエンド サービスに転送する API プロキシ。JSON API または XML API になります。このセクションで後述する HTTP サービス用のリバース プロキシを作成するをご覧ください。

    No target

    API バックエンドがない(「ターゲットなし」)API プロキシ。HTTP サービス用のリバース プロキシを作成すると類似していますが、API プロキシの詳細を定義するときに既存のターゲット URL を指定しません。

以降のセクションでは、各 API プロキシタイプの作成に必要な追加手順について説明します。

HTTP サービス用のリバース プロキシの作成

Apigee は、次の情報に基づいてリバース API プロキシを生成します。

  • バックエンド サービスの URL
  • API プロキシによってコンシューマ アプリに公開されることになる API を一意に指定する URI パス

API プロキシの作成の際に、リバース プロキシを選択した場合、以下の表で説明するセキュリティ認証API プロキシの詳細のプロンプトが表示されます。

[セキュリティ認証] では、次のいずれかのオプションを選択します。

セキュリティ認証 説明
API key based authentication

定義中の API プロキシに、単純な API キー検証を追加します。Apigee によって、API プロキシに次のポリシーが自動的に追加されます。

  • アプリのリクエストで提示された API キーを検証する VerifyAPIKey。
  • バックエンド サーバーに転送されたリクエストからクエリ パラメータとして提供された API キーを削除する AssignMessage。
Access token based authentication

API プロキシに OAuth 2.0 ベースの認可を追加します。Apigee によって、API プロキシに次のポリシーが自動的に追加されます。

  • アクセス トークンを検証する VerifyAPIKey。
  • 認証のために渡された Authorization ヘッダーを削除する AssignMessage。
アクセス トークンを使用して認証する方法については、アクセス トークンの確認をご覧ください。
No authentication 認証は必要ありません。Apigee でセキュリティ チェックを行うことなく、リクエストがバックエンドに渡されます。

[API プロキシの詳細] では、次の各プロンプトに対応し、Enter キーを押して、確定して続行するか、Esc キーを押して、ウィザードをキャンセルします。

フィールド 説明
Backend target URL この API プロキシが呼び出すバックエンド サービスの URL。
API proxy name API に表示される名前。英数字、ハイフン(-)、アンダースコア(_)で指定します。
API proxy base path API プロキシの「http://[host]」アドレスや「https://[host]」アドレスの後に現われる URI の一部分。Apigee は、ベースパス URI を使用して受信リクエスト メッセージを照合し、適切な API プロキシに転送します。

ベースパスでワイルドカードを使用する

プロキシを将来の変更に柔軟に対応させるために、API プロキシのベースパスで 1 つ以上の /*/ ワイルドカードを使用できます。たとえば、ベースパスを /team/*/members にすると、新しいチームをサポートするために新しい API プロキシを作成する必要なく、クライアントが https://[host]/team/blue/membershttps://[host]/team/green/members を呼び出すことができます。/**/ はサポートされていないことに注意してください。

ウィザードの手順を完了すると、[Apigee] セクションの apiproxies の下に新しい apiproxy-name フォルダが追加されます。各 API プロキシ フォルダは、API プロキシ構成のディレクトリ構造で説明されているように構造化されます。

次の例は、API キーベースの認証をサポートするために追加されたポリシーを含む、helloworld という名前のリバース API プロキシ用に作成されたデフォルトの構成を示しています。

Apigee セクションのリバース プロキシのフォルダ構造を示している

デフォルト構成の説明については、デフォルトの API プロキシ構成の確認をご覧ください。

バックエンド ターゲットのない API プロキシの作成

バックエンド ターゲットのない API プロキシを作成するプロセスは、バックエンド サービス(Target (Existing API))の URL の指定を求められないこと、デフォルトのターゲット エンドポイント構成が含まれていないことを除き、リバース プロキシの作成と同じです。詳細については、HTTP サービス用のリバース プロキシを作成するをご覧ください。

デフォルトの API プロキシ構成の確認

次の表は、選択した API プロキシの種類と認証オプションに基づいて API プロキシを作成する際に、デフォルト構成に含まれる内容をまとめたものです。

構成 fileReverse プロキシ
Reverse proxy
No target
OAuthV2 認証
API キー認証
proxies/default.xml
デフォルトのプロキシ エンドポイント構成
   
targets/default.xml
デフォルトのターゲット エンドポイント構成
     
impose-quota.xml
デフォルトの割り当てを定義する割り当てポリシー
   
remove-header-authorization.xml
認証のために渡された Authorization ヘッダーを削除する AssignMessage ポリシー
    >
 
remove-query-param-apikey.xml
認証のために渡された apikey クエリ パラメータを削除する AssignMessage ポリシー
     
verify-api-key.xml
API キーの検証を適用する VerifyAPIKey ポリシー
     
verify-oauth-v2-access-token.xml
OAuth V2 アクセス トークンを検証する OAuthV2 ポリシー。
   
 

API プロキシ バンドルのアップロード

Cloud Code で API プロキシ バンドルを Apigee にアップロードするには:

  1. 次のいずれかの操作を行います。

    • Apigee セクションで、apiproxies フォルダにカーソルを合わせて、アップロード アイコン をクリックします。

    • [View] > [Command Palette] を選択して、コマンド パレットを開き、[Cloud Code: Import Apigee proxy bundle] を選択します。

  2. アップロードする API プロキシ バンドルに移動し、[Import proxy] をクリックします。 API プロキシ バンドルは、API プロキシ構成のディレクトリ構造の説明に沿って構造化する必要があります。

  3. (省略可)デフォルトでは、API ファイルの名前には、zip ファイルの名前から拡張子を除いたものが使用されます。この名前が一意でない場合は、一意の名前を入力するように求められます。

アップロードされた apiproxy-name フォルダが Apigee セクションの apiproxies の下に追加されます。

プロキシ エンドポイントの管理

API プロキシとはで説明されているように、プロキシ エンドポイント(ProxyEndpoint)は、クライアント アプリが API を使用する方法を定義します。プロキシ エンドポイント を構成して、API プロキシの URL を定義します。また、プロキシ エンドポイントは、アプリが HTTP と HTTPS のどちらで API プロキシにアクセスするかを決定します。プロキシ エンドポイントにポリシーを接続して、セキュリティ、割り当てチェック、その他のタイプのアクセス制御とレート制限を適用できます。

以下の手順に沿って、プロキシ エンドポイントを作成して構成します。

プロキシ エンドポイントの作成

API プロキシを作成すると、デフォルトのプロキシ エンドポイントが API プロキシ構成に追加されます。詳細については、デフォルトの API プロキシ構成の確認をご覧ください。必要に応じて、追加のプロキシ エンドポイントを作成できます。

Cloud Code で Apigee を使用してプロキシ エンドポイントを作成するには:

  1. Apigee セクションで、次のいずれかのアクションを行います。

    • Apigee セクションで、次のいずれかのフォルダにカーソルを合わせて、[作成アイコン] をクリックし、[Create proxy endpoint] を選択します。
      • apiproxy-name プロキシ バンドル
      • apiproxy-name/apiproxy
    • Apigee セクションで、apiproxy-name/apiproxy/proxies フォルダにカーソルを合わせて、[作成アイコン] をクリックします。

    [Create proxy endpoint] ウィザードが開きます。

  2. 次のプロンプトのセットの値を入力します。プロンプトの入力ごとに Enter キーを押して、確定して続行するか、Esc キーを押して、キャンセルします。

    フィールド 説明
    Proxy endpoint name プロキシ エンドポイントの識別に使用する名前。
    API proxy base path API にリクエストを送信するために使用される URL の一部。Apigee では、URL を使用して受信リクエストを照合し、適切な API プロキシに転送します。

エンドポイントが作成されると、Apigee セクションの apiproxy-name/apiproxy/proxies フォルダに追加され、エディタでエンドポイントが開きます。以下のセクションで説明するとおりに、プロキシ エンドポイントを構成します。

プロキシ エンドポイントの構成

プロキシ エンドポイントを構成するには、次のセクションをご覧ください。

ターゲット エンドポイントの管理

API プロキシとはで説明しているとおり、ターゲット エンドポイント(TargetEndpoint)では、API プロキシとバックエンド サービスとのやり取りの方法を定義します。セキュリティ設定、HTTP または HTTPS プロトコル、その他の接続情報の定義など、リクエストが適切なバックエンド サービスに転送されるように、ターゲット ポイントを構成します。ターゲット エンドポイントにポリシーを接続すると、最初のリクエストを行ったアプリ用に、レスポンス メッセージが適切に形式設定されるようになります。

このセクションの説明に沿って、ターゲット エンドポイントを作成して構成します。

ターゲット エンドポイントの作成

リバース API プロキシを作成すると、デフォルトのターゲット エンドポイントが API プロキシ構成に追加されます。バックエンド ターゲットのない API プロキシを作成する場合、デフォルトのプロキシ エンドポイントのみが API プロキシ構成に追加され、ターゲット エンドポイントは追加されません。詳細については、デフォルトの API プロキシ構成の確認をご覧ください。

必要に応じてターゲット エンドポイントを作成します。

Cloud Code で Apigee を使用してターゲット エンドポイントを作成するには:

  1. Apigee セクションで、次のいずれかのアクションを行います。

    • Apigee セクションで、次のいずれかのフォルダにカーソルを合わせて、[作成アイコン] をクリックし、[Create target endpoint] を選択します。
      • apiproxy-name プロキシ バンドル
      • apiproxy-name/apiproxy
    • Apigee セクションで、apiproxy-name/apiproxy/targets フォルダにカーソルを合わせて、[作成アイコン] をクリックします。

    [Create target endpoint] ウィザードが開きます。

  2. 作成するターゲット エンドポイントの種類に基づいて、次の手順を行います。

    種類 ステップ
    外部 HTTP(s) ターゲット

    外部 HTTP(s) ターゲットを定義するには:

    1. [HTTP(s) ターゲット] を選択します。
    2. ターゲット エンドポイントの名前を [ターゲット エンドポイント名] に入力します。
    3. [Backend target URL] に、このターゲット エンドポイントが呼び出すバックエンド サービスの URL を入力します。

    詳細については、ターゲット エンドポイントの URL の指定をご覧ください。

    プロキシ チェーン

    ローカルにデプロイされた API プロキシをターゲットとして定義するには:

    1. [Proxy chaining] を選択します。
    2. ターゲット エンドポイントの名前を [ターゲット エンドポイント名] に入力します。
    3. API プロキシを選択します。
    4. プロキシ エンドポイントを選択します。

    詳細については、チェーンによるプロキシの接続をご覧ください。

    ロード バランシングのターゲット

    環境で定義されたターゲット サーバーを使用してロード バランシングのターゲットを定義するには:

    1. [Load balanced target] を選択します。
    2. ターゲット エンドポイントの名前を [ターゲット エンドポイント名] に入力します。

    詳細については、名前付き TargetServer 間でロード バランシングを行うために TargetEndpoint を構成するをご覧ください。

ターゲット エンドポイントが作成されると、Apigee セクションの apiproxy-name/apiproxy/targets フォルダに追加され、エディタでエンドポイントが開きます。次のセクションで説明するとおりに、ターゲット エンドポイントを構成します。

ターゲット エンドポイントの構成

以下のトピックの説明に沿って、ターゲット エンドポイントを構成します。