API プロキシの開発

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

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

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

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

API プロキシの作成

Cloud Code で Apigee を使用して API プロキシを作成するには、ローカル開発ワークスペースを作成してから、次の操作を行います。

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

    • ワークスペースで、apiproxies フォルダにカーソルを合わせて、API プロキシの作成アイコン をクリックします。

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

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

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

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

    説明
    Access token-based authentication

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

    • プロキシで割り当てを管理する割り当て。
    • バックエンド サーバーに転送されたリクエストからクエリ パラメータとして提供された API キーを削除する AssignMessage。
    • 認証方法として OAuthV2 を使用します。
    API key-based authentication

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

    • プロキシで割り当てを管理する割り当て。
    • アプリの要求で提示された API キーを検証する VerifyAPIKey。
    • バックエンド サーバーに転送されたリクエストからクエリ パラメータとして提供された API キーを削除する AssignMessage。
    Echo request

    リクエストをエコーする API プロキシ。このプロキシ タイプにはターゲット/API バックエンドがなく、認証もありません。バックエンド サービス(Target (Existing API))の URL の指定を求められないこと、デフォルトのターゲット エンドポイント構成が含まれていないことを除き、リバース プロキシの作成と同じです。

    Simple reverse proxy

    リクエストをバックエンド ターゲットに転送する API プロキシ。認証が含まれていないため、リクエストはセキュリティ チェックなしでバックエンドに渡されます。

    OpenAPI 3.0 spec

    既存の OpenAPI 3.0 仕様を読み込んでプロキシを作成します。詳細については、OpenAPI Initiative をご覧ください。

  3. 各プロキシタイプの作成に必要なフィールド(ベースパスなど)については、API プロキシのプライマリ フィールドをご覧ください。各プロンプトに対応し、Enter キーを押して、確定して続行するか、Esc キーを押して、ウィザードをキャンセルします。

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

次の例は、タイプ API key-based authentication で作成された API プロキシ用に作成されたデフォルトの構成を示しています。

API キーベースの認証プロキシのフォルダ構造

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

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

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

構成ファイル
シンプルなリバース プロキシ
エコー リクエスト
アクセス トークン(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 フォルダにカーソルを合わせて、API プロキシ バンドルをインポートするアイコン をクリックします。

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

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

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

アップロードされた apiproxy-name フォルダがワークスペースの apiproxies の下に追加されます。

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

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

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

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

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

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

  1. Apigee ワークスペースで、次のいずれかの操作を行います。

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

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

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

    項目 説明
    Proxy endpoint name プロキシ エンドポイントの識別に使用する名前。
    API proxy base path API にリクエストを送信するために使用される URL の一部。Apigee では、URL を使用して受信リクエストを照合し、適切な API プロキシに転送します。
    Target endpoint no target または default を選択します。 詳細については、ProxyEndpoint 構成要素をご覧ください。

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

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

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

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

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

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

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

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

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

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

  1. Apigee ワークスペースで、次のいずれかの操作を行います。

    • 次のいずれかのフォルダにカーソルを合わせて、[ターゲット エンドポイントの作成アイコン] をクリックし、[Create target endpoint] を選択します。
      • apiproxy-name プロキシ バンドル
      • apiproxy-name/apiproxy
    • 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 を構成するをご覧ください。

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

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

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