メニュー
Amazon API Gateway
開発者ガイド

HTTP プロキシ統合で API の作成およびテスト

このチュートリアルでは、HTTP プロキシ統合を使用してプロキシリソースを通じた PetStore ウェブサイトとの統合を行う API を作成します。

HTTP プロキシ統合で API を作成する

次の手順では、API Gateway コンソールを使用して、HTTP バックエンド用の API と プロキシリソース を作成してテストする方法を説明します。HTTP バックエンドは、「HTTP エンドポイントを公開するための API Gateway API を作成する」で作成した PetStore ウェブサイト (http://petstore-demo-endpoint.execute-api.com/) です。

API およびプロキシリソースを通じた PetStore ウェブサイトとの HTTP プロキシ統合を構築するには

  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. API を作成するには、[Create new API] (最初の API を作成する場合)または [Create API] (以降の API を作成する場合)を選択します。次に、以下の手順を実行します。

    1. [New API] を選択します。

    2. [API Name] に名前を入力します。

    3. 必要に応じて、[Description] に短い説明を 入力します。

    4. [Create API] を選択します。

    このチュートリアルでは、API 名として ProxyResourceForPetStore を使用します。

  3. 子リソースを作成するには、[Resources] ツリーで親リソース項目を選択し、[Actions] ドロップダウンメニューから [Create Resource] を選択します。次に、[New Child Resource] ペインで次の操作を行います。

    1. プロキシリソースを作成するには、[Configure as proxy resource] オプションを選択します。それ以外の場合は、選択しないままにします。

    2. [Resource Name*] テキスト入力フィールドに名前を入力します。

    3. [Resource Path*] テキスト入力フィールドで、新しい名前を入力するか、デフォルト名を使用します。

    4. [Create Resource] を選択します。

    5. 必要に応じて、[Enable API Gateway CORS] を選択します。

    このチュートリアルでは、[Configure as proxy resource] を選択します。[Resource Name] は、デフォルトの proxy を使用します。[Resource Path] には /{proxy+} を使用します。[Enable API Gateway CORS] を選択します。

  4. HTTP バックエンドとの統合用に ANY メソッドを設定するには、次の操作を行います。

    1. [Integration type] として [HTTP Proxy] を選択します。

    2. [Endpoint URL] に HTTP バックエンドのリソース URL を入力します。

    3. [Save] を選択して ANY メソッドの設定を終了します。

    このチュートリアルでは、[Endpoint URL] として http://petstore-demo-endpoint.execute-api.com/{proxy} を使用します。

API およびプロキシリソースを通じた HTTP プロキシ統合をテストする

作成した API では、API の プロキシリソース パス ({proxy+}) が、http://petstore-demo-endpoint.execute-api.com/ にある任意のバックエンドのエンドポイントを表すプレースホルダーになります。たとえば、petstorepetstore/petspetstore/pets/{petId} のようになります。ANY メソッドは、実行時に、サポートされる HTTP 動詞のプレースホルダーとして機能します。次のテスト手順を参照してください。

プロキシリソースを通じた HTTP プロキシ統合を使用して PetStore ウェブサイトと統合された API をテストするには

  1. API Gateway コンソールで API の呼び出しをテストするには、次の操作を行います。

    1. [Resources] ツリーで プロキシリソース の [ANY] を選択します。

    2. [Method Execution] ペインの [Test] を選択します。

    3. [Method] ドロップダウンリストから、バックエンドでサポートされる HTTP 動詞を選択します。

    4. [Path] で、選択したオペレーションをサポートする特定の プロキシリソース パスを入力します。

    5. 必要に応じて、[Query Strings] で、選択したオペレーションの該当するクエリ式を入力します。

    6. 必要に応じて、[Headers] で、選択したオペレーションの該当するヘッダー式を 1 つ以上入力します。

    7. 設定する場合、[Stage Variables] で、選択したオペレーションの必須のステージ変数値を設定します。

    8. プロンプトが表示された場合は、必要に応じて [Client Certificate] で、バックエンドで認証するオペレーションに対して API Gateway で生成されたクライアント証明書を選択します。

    9. プロンプトが表示された場合は、[Request Body] で、テキストエディターの適切なリクエスト本文を入力します。

    10. [Test] を選択してメソッドの呼び出しをテストします。

    このチュートリアルでは、ANY メソッドとして GET、プロキシリソースパス ({proxy}) の代わりに petstore/pets、クエリ文字列として type=fish を使用します。

    バックエンドのウェブサイトは、GET /petstore/pets?type=fish リクエストをサポートするため、次のような成功のレスポンスを返します。

    Copy
    [ { "id": 1, "type": "fish", "price": 249.99 }, { "id": 2, "type": "fish", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]

    GET /petstore を呼び出そうとすると、404 レスポンスとエラーメッセージ Cannot GET /petstore が返されます。これは、指定したオペレーションがバックエンドでサポートされていないためです。一方、GET /petstore/pets/1 を呼び出すと、リクエストは PetStore ウェブサイトでサポートされているため、200 OK レスポンスと次のペイロードが返されます。

    Copy
    { "id": 1, "type": "dog", "price": 249.99 }
  2. ブラウザを使用して API の特定のリソースに対して GET メソッドを呼び出すには、次の操作を行います。

    1. 作成した API に対して、[Actions] ドロップダウンメニューから [Deploy API] を選択します (まだ選択していない場合)。API を特定のステージにデプロイするための手順に従います。最後に [Stage Editor] ページに [Invoke URL] が表示されることを確認します。これは API のベース URL です。

    2. 特定のリソースに対する GET リクエストを送信するには、前のステップで取得した [Invoke URL] の値に対して該当するクエリ文字列式を含むリソースパスを追加し、その URL 全体をブラウザのアドレスバーにコピーして Enter を選択します。

    このチュートリアルでは、API を test ステージにデプロイし、petstore/pets?type=fish を API の呼び出し URL に追加します。これにより、https://4z9giyi2c1.execute-api.us-west-2.amazonaws.com/test/petstore/pets?type=fish という URL が生成されます。

    この結果は、API Gateway コンソールから TestInvoke を使用したときに返される結果と同じです。