API Gateway コンソールを使用したモック統合の有効化 - Amazon API Gateway

API Gateway コンソールを使用したモック統合の有効化

メソッドが API Gateway で使用可能であることが必要です。「チュートリアル: HTTP 非プロキシ統合を使用して REST API をビルドする」の手順に従います

  1. API リソースを選択し、[メソッドを作成] を選択します。

    メソッドを作成するには、次の操作を行います。

    1. [メソッドタイプ] で、メソッドを選択します。

    2. [統合タイプ] で、[Mock] を選択します。

    3. [メソッドの作成] を選択します。

    4. [メソッドリクエスト] タブの [メソッドリクエストの設定] で、[編集] を選択します。

    5. [URL クエリ文字列パラメータ] を選択します。[クエリ文字列を追加] を選択し、[名前] に「scope」と入力します。このクエリパラメータは、呼び出し元が内部かどうかを決定します。

    6. [Save] を選択します。

  2. [メソッドレスポンス] タブで [レスポンスを作成] を選択し、次の操作を行います。

    1. [HTTP ステータス] に「500」と入力します。

    2. [Save] を選択します。

  3. [統合リクエスト] タブの [統合リクエストの設定] で、[編集] を選択します。

  4. [マッピングテンプレート] を選択し、次の操作を行います。

    1. [マッピングテンプレートの追加] を選択します。

    2. [コンテンツタイプ] に、「application/json」と入力します。

    3. [テンプレート本文] で次のように入力します。

      { #if( $input.params('scope') == "internal" ) "statusCode": 200 #else "statusCode": 500 #end }
    4. [Save] を選択します。

  5. [統合レスポンス] タブの [デフォルト - レスポンス] で、[編集] を選択します。

  6. [マッピングテンプレート] を選択し、次の操作を行います。

    1. [コンテンツタイプ] に、「application/json」と入力します。

    2. [テンプレート本文] で次のように入力します。

      { "statusCode": 200, "message": "Go ahead without me" }
    3. [Save] を選択します。

  7. [レスポンスの作成] を選択します。

    500 レスポンスを作成するには、次の操作を行います。

    1. [HTTP status regex (HTTP ステータスの正規表現)]に「5\d{2}」と入力します。

    2. [メソッドレスポンスのステータス] で、[500] を選択します。

    3. [Save] を選択します。

    4. [5\d{2} - レスポンス] で、[編集] を選択します。

    5. [マッピングテンプレート][マッピングテンプレートの追加] の順に選択します。

    6. [コンテンツタイプ] に、「application/json」と入力します。

    7. [テンプレート本文] で次のように入力します。

      { "statusCode": 500, "message": "The invoked method is not supported on the API resource." }
    8. [Save] を選択します。

  8. [テスト] タブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。Mock 統合をテストするには、次の操作を行います。

    1. [クエリ文字列] に「scope=internal」と入力します。[Test (テスト)] を選択します。テストの結果が表示されます。

      Request: /?scope=internal Status: 200 Latency: 26 ms Response Body { "statusCode": 200, "message": "Go ahead without me" } Response Headers {"Content-Type":"application/json"}
    2. Query strings に「scope=public」と入力するか、空白のままにします。[Test (テスト)] を選択します。テストの結果が表示されます。

      Request: / Status: 500 Latency: 16 ms Response Body { "statusCode": 500, "message": "The invoked method is not supported on the API resource." } Response Headers {"Content-Type":"application/json"}

また、メソッドレスポンスにヘッダーを追加してから、統合レスポンスでヘッダーマッピングを設定することによって、モック統合レスポンスでヘッダーを返すこともできます。実際に、これは API Gateway コンソールで CORS の必要なヘッダーを返すことによって CORS サポートを有効にする方法です。