

# API Gateway コンソールを使用したモック統合の有効化
<a name="how-to-mock-integration-console"></a>

メソッドが API Gateway で使用可能であることが必要です。「[チュートリアル: HTTP 非プロキシ統合を使用して REST API を作成する](api-gateway-create-api-step-by-step.md)」の手順に従います。

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

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

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

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

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

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

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

   1. **[保存]** を選択します。

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

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

   1. **[保存]** を選択します。

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

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

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

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

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

      ```
      {
        #if( $input.params('scope') == "internal" )
          "statusCode": 200
        #else
          "statusCode": 500
        #end
      }
      ```

   1. **[保存]** を選択します。

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

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

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

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

      ```
      {
          "statusCode": 200,
          "message": "Go ahead without me"
      }
      ```

   1. **[保存]** を選択します。

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

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

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

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

   1. **[保存]** を選択します。

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

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

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

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

      ```
      {
          "statusCode": 500,
          "message": "The invoked method is not supported on the API resource."
      }
      ```

   1. **[保存]** を選択します。

1.  **[テスト]** タブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。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"}
      ```

   1. `scope=public` に「`Query strings`」と入力するか、空白のままにします。[**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 サポートを有効にする方法です。