

# API Gateway コンソールを使用してメソッドをセットアップする
<a name="how-to-set-up-method-using-console"></a>

REST API コンソールを使用してメソッドを作成する場合、統合リクエストとメソッドリクエストの両方を設定します。デフォルトでは、API Gateway はメソッドの `200` メソッドレスポンスを作成します。

以下の手順では、メソッドリクエスト設定を編集する方法と、メソッドに追加のメソッドレスポンスを作成する方法を示します。

**Topics**
+ [API Gateway コンソールで API Gateway メソッドリクエストを編集する](#how-to-method-settings-callers-console)
+ [API Gateway コンソールで API Gateway メソッドレスポンスをセットアップする](#how-to-method-response-settings-console)

## API Gateway コンソールで API Gateway メソッドリクエストを編集する
<a name="how-to-method-settings-callers-console"></a>

 以下の手順では、メソッドリクエストを作成済みであることを前提としています。メソッドの作成方法の詳細については、「[API Gateway コンソールを使用して API 統合リクエストを設定する](how-to-method-settings-console.md)」を参照してください。

1. **[リソース]** ペインで、メソッドを選択し、**[メソッドリクエスト]** タブを選択します。

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

1. **[承認]** で、使用可能なオーソライザーを選択します。

   1. すべてのユーザーでメソッドへのオープンアクセスを有効化するには、**[なし]** を選択します。デフォルト設定が変更されていない場合、このステップはスキップできます。

   1. IAM アクセス許可を使用してメソッドへのクライアントアクセスを制御するには、[`AWS_IAM`] を選択します。これを選択した場合、適切な IAM ポリシーがアタッチされた IAM ロールのユーザーのみがこのメソッドを呼び出すことができます。

      IAM ロールを作成するには、以下のような形式のアクセスポリシーを指定します。

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "execute-api:Invoke"
            ],
            "Resource": [
              "arn:aws:execute-api:us-east-1:111111111111:aaabbb/*/GET/"
            ]
          }
        ]
      }
      ```

------

      このアクセスポリシーにおいて、`arn:aws:execute-api:us-east-1:111111111111:aaabbb/*/GET/` はメソッドの ARN です。メソッドの ARN は、**[リソース]** ページでメソッドを選択することで確認できます。これらの IAM アクセス許可の詳細については、「[IAM アクセス許可を使用して REST API へのアクセスを制御する](permissions.md)」を参照してください。

      IAM ロールを作成するには、チュートリアル「[Lambda 非プロキシ統合用の Lambda 関数の作成](getting-started-lambda-non-proxy-integration.md#getting-started-new-lambda)」の手順を応用できます。

   1.  Lambda オーソライザーを使用するには、トークンまたはリクエストオーソライザーを選択します。この選択肢をドロップダウンメニューに表示するには、Lambda オーソライザーを作成します。Lambda オーソライザーの詳細な作成方法については、「[API Gateway Lambda オーソライザーを使用する](apigateway-use-lambda-authorizer.md)」を参照してください。

   1.  Amazon Cognito ユーザープールを使用するには、[**Cognito ユーザープールオーソライザー**] で使用可能なユーザープールを選択します。この選択をドロップダウンメニューに表示するには、Amazon Cognito でユーザープールを作成し、API Gateway で Amazon Cognito ユーザープールオーソライザーを作成します。Amazon Cognito ユーザープール認証の作成方法については、「[Amazon Cognito ユーザープールをオーソライザーとして使用して REST API へのアクセスを制御する](apigateway-integrate-with-cognito.md)」を参照してください。

1.  リクエスト検証を指定するには、**[リクエストの検証]** ドロップダウンメニューから値を選択します。リクエスト検証を無効にするには、**[なし]** を選択します。各オプションの詳細については、「[API Gateway での REST API のリクエスト検証](api-gateway-method-request-validation.md)」を参照してください。

1. **[API キーの必要性]** を選択すると、API キーを要求できるようになります。有効にすると、API キーは[使用量プラン](api-gateway-api-usage-plans.md)で使用され、クライアントトラフィックを絞り込みます。

1. (オプション) API Gateway で生成されたこの API の Java SDK にオペレーション名を割り当てるには、**[オペレーション名]** に名前を入力します。たとえば、`GET /pets/{petId}` のメソッドリクエストでは、対応する Java SDK のオペレーション名は、デフォルトで `GetPetsPetId` です。この名前はメソッドの HTTP 動詞 (`GET`) とリソースパスの変数名 (`Pets` と `PetId`) から構成されています。オペレーション名を `getPetById` に設定した場合、SDK オペレーション名は `GetPetById` になります。

1. クエリ文字列パラメータをメソッドに追加するには、以下の操作を実行します。

   1. **[URL クエリ文字列パラメータ]** を選択してから、**[クエリ文字列の追加]** を選択します。

   1. **[名前]** に、クエリ文字列パラメータの名前を入力します。

   1. 新しく作成されたクエリ文字列パラメータがリクエスト検証に使用される場合は、**[必須]** を選択します。リクエスト検証の詳細については、「[API Gateway での REST API のリクエスト検証](api-gateway-method-request-validation.md)」を参照してください。

   1. 新しく作成されたクエリ文字列パラメータがキャッシングキーの一部として使用される場合は、**[キャッシュ]** を選択します。キャッシングの詳細については、「[メソッドパラメータまたは統合パラメータをキャッシュキーとして使用して、キャッシュされたレスポンスにインデックスを付ける](api-gateway-caching.md#enable-api-gateway-cache-keys)」を参照してください。

   クエリ文字列パラメータを削除するには、**[削除]** を選択します。

1. メソッドにヘッダーパラメータを追加するには、以下の操作を実行します。

   1. **[HTTP リクエストヘッダー]** を選択した後、**[ヘッダーの追加]** を選択します。

   1. **[名前]** に、ヘッダーの名前を入力します。

   1. 新しく作成されたヘッダーがリクエスト検証に使用される場合は、**[必須]** を選択します。リクエスト検証の詳細については、「[API Gateway での REST API のリクエスト検証](api-gateway-method-request-validation.md)」を参照してください。

   1. 新しく作成されたヘッダーがキャッシングキーの一部として使用される場合は、**[キャッシュ]** を選択します。キャッシングの詳細については、「[メソッドパラメータまたは統合パラメータをキャッシュキーとして使用して、キャッシュされたレスポンスにインデックスを付ける](api-gateway-caching.md#enable-api-gateway-cache-keys)」を参照してください。

   ヘッダーを削除するには、**[削除]** を選択します。

1.  `POST`、`PUT`、または `PATCH` HTTP 動詞でメソッドリクエストのペイロード形式を宣言するには、**[リクエスト本文]** を選択して以下を実行します。

   1. [**モデルの追加**] を選択します。

   1. **[コンテンツタイプ]** に MIME タイプ (`application/json` など) を入力します。

   1. **[モデル]** では、ドロップダウンメニューからモデルを選択します。API で現在使用可能なモデルには、すでに作成して API の [[モデル](https://docs.aws.amazon.com/apigateway/latest/api/API_Model.html)] コレクションに追加しているモデルに加え、デフォルトの `Empty` および `Error` モデルが含まれます。モデル作成についての詳細は、[REST API のデータモデル](models-mappings-models.md) を参照してください。
**注記**  
 モデルはペイロードの予測されるデータ形式をクライアントに通知するのに便利です。スケルトンベースのマッピングテンプレートを作成するのに役立ちます。API の厳密に型指定された SDK を Java、C\$1、Objective-C、および Swift などの言語で作成することが重要です。ペイロードに対するリクエスト検証が有効になっている場合にのみ必要です。

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

## API Gateway コンソールで API Gateway メソッドレスポンスをセットアップする
<a name="how-to-method-response-settings-console"></a>

 API メソッドには、1 つ以上のレスポンスを含めることができます。各レスポンスは HTTP ステータスコードでインデックス作成されます。デフォルトでは、API Gateway コンソールはメソッドレスポンスに `200` レスポンスを追加します。たとえばこれを修正し、メソッドが `201` を返すように設定できます。アクセス拒否の `409`や、初期化されていないステージ変数が使用されている場合の `500` など、その他のレスポンスを追加することもできます。

 API Gateway コンソールを使用してレスポンスを変更、削除、または API メソッドに追加するには、次の手順に従います。

1. **[リソース]** ペインで、メソッドを選択し、**[メソッドレスポンス]** タブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。

1. **[メソッドレスポンスの設定]** セクションで、**[レスポンスを作成]** を選択します。

1. **[HTTP ステータスコード]** には、`200`、`400`、または `500` などの HTTP ステータスコードを入力します。

    バックエンドが返したレスポンスに対応するメソッドレスポンスが定義されていない場合、API Gateway はクライアントにレスポンスを返しません。代わりに、`500 Internal server error` エラーレスポンスを返します。

1. [**ヘッダーの追加**] を選択します。

1.  **[ヘッダー名]** に名前を入力します。

    バックエンドからクライアントにヘッダーを返すには、メソッドレスポンスにヘッダーを追加します。

1.  **[モデルを追加]** を選択して、メソッドレスポンス本文の形式を定義します。

   **[コンテンツタイプ]** にレスポンスペイロードのメディアタイプを入力し、**[モデル]** ドロップダウンメニューからモデルを選択します。

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

既存のレスポンスを変更するには、メソッドレスポンスに移動し、**[編集]** を選択します。**HTTP ステータスコード**を変更するには、**[削除]** を選択し、新しいメソッドレスポンスを作成します。

バックエンドから返されたすべてのレスポンスで、互換性のあるレスポンスをメソッドレスポンスとして設定する必要があります。ただし、バックエンドの結果がクライアントに返される前にメソッドレスポンスにマッピングされない場合を除き、メソッドレスポンスのヘッダーとペイロードモデルの設定はオプションです。API のために厳密に型指定された SDK を作成している場合は、メソッドレスポンスペイロードモデルも重要です。