API Gateway コンソールを使用してメソッドをセットアップする
API メソッドをセットアップする前に、以下について検証します。
-
メソッドが API Gateway で使用可能であることが必要です。「チュートリアル: HTTP 非プロキシ統合を使用して REST API をビルドする」の手順に従います
-
メソッドと Lambda 関数を通信させるには、IAM で Lambda 呼び出しロールと Lambda 実行ロールを作成済みである必要があります。メソッドが AWS Lambda で通信するための Lambda 関数も作成しておく必要があります。ロールと関数を作成するには、Lambda 統合で API Gateway REST API を構築する の「Lambda 非プロキシ統合用の Lambda 関数の作成」で説明する指示に従ってください。
-
メソッドを HTTP または HTTP プロキシ統合と通信させるには、メソッドが通信する HTTP エンドポイント URL をすでに作成してアクセスを確立している必要があります。
-
HTTP および HTTP プロキシエンドポイントの証明書が API Gateway によりサポートされていることを確認します。詳細については、「HTTP および HTTP プロキシ統合のために API Gateway によりサポートされる証明機関」を参照してください。
API Gateway コンソールで API Gateway メソッドをセットアップする
API Gateway コンソールを使用して API のメソッドリクエスト/応答を指定し、さらにメソッドがリクエストを認証する方法を設定するには、以下の手順に従います。
注記
これらの手順は、すでに「API Gateway コンソールを使用して API 統合リクエストを設定する」のステップを完了していることを前提としています。これらは、「Lambda 統合で API Gateway REST API を構築する」の説明を補うのに最適です。
-
[リソース] ペインでメソッドを選択した状態で、[メソッドリクエスト] タブを選択します。
[メソッドリクエストの設定] セクションで、[編集] を選択します。
-
[承認] で、使用可能なオーソライザーを選択します。
-
すべてのユーザーでメソッドへのオープンアクセスを有効化するには、[なし] を選択します。デフォルト設定が変更されていない場合、このステップはスキップできます。
-
IAM アクセス許可を使用してメソッドへのクライアントアクセスを制御するには、[
AWS_IAM
] を選択します。これを選択した場合、適切な IAM ポリシーがアタッチされた IAM ロールのユーザーのみがこのメソッドを呼び出すことができます。IAM ロールを作成するには、以下のような形式のアクセスポリシーを指定します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "execute-api:Invoke" ], "Resource": [ "
resource-statement
" ] } ] }このアクセス ポリシーでは、
resource-statement
は [認証の設定] セクションの [ARN] フィールドの値です。これらの IAM アクセス許可の詳細については、「IAM アクセス許可により API へのアクセスを制御する」を参照してください。この IAM ロールを作成するには、Lambda 統合で API Gateway REST API を構築する の「Lambda 関数を作成する」セクションにある「Lambda 呼び出しロールとそのポリシーを作成する」と「Lambda 実行ロールとそのポリシーを作成する」の手順を適応できます。
-
Lambda オーソライザーを使用するには、トークンまたはリクエストオーソライザーを選択します。この選択肢をドロップダウンメニューに表示するには、Lambda オーソライザーを作成します。Lambda オーソライザーの詳細な作成方法については、「API Gateway Lambda オーソライザーを使用する」を参照してください。
-
Amazon Cognito ユーザープールを使用するには、[Cognito ユーザープールオーソライザー] で使用可能なユーザープールを選択します。この選択をドロップダウンメニューに表示するには、Amazon Cognito でユーザープールを作成し、API Gateway で Amazon Cognito ユーザープールオーソライザーを作成します。Amazon Cognito ユーザープール認証の作成方法については、「Amazon Cognito ユーザープールをオーソライザーとして使用して REST API へのアクセスを制御する」を参照してください。
-
-
リクエスト検証を指定するには、[リクエストの検証] ドロップダウンメニューから値を選択します。リクエスト検証を無効にするには、[なし] を選択します。各オプションの詳細については、「API Gateway でリクエストの検証を使用する」を参照してください。
-
[API キーの必要性] を選択すると、API キーを要求できるようになります。有効にすると、API キーは使用量プランで使用され、クライアントトラフィックを絞り込みます。
-
(オプション) API Gateway で生成されたこの API の Java SDK にオペレーション名を割り当てるには、[オペレーション名] に名前を入力します。たとえば、
GET /pets/{petId}
のメソッドリクエストでは、対応する Java SDK のオペレーション名は、デフォルトでGetPetsPetId
です。この名前はメソッドの HTTP 動詞 (GET
) とリソースパスの変数名 (Pets
とPetId
) から構成されています。オペレーション名をgetPetById
に設定した場合、SDK オペレーション名はGetPetById
になります。 -
クエリ文字列パラメータをメソッドに追加するには、以下の操作を実行します。
-
[URL クエリ文字列パラメータ] を選択してから、[クエリ文字列の追加] を選択します。
-
[名前] に、クエリ文字列パラメータの名前を入力します。
-
新しく作成されたクエリ文字列パラメータがリクエスト検証に使用される場合は、[必須] を選択します。リクエスト検証の詳細については、「API Gateway でリクエストの検証を使用する」を参照してください。
-
新しく作成されたクエリ文字列パラメータがキャッシングキーの一部として使用される場合は、[キャッシュ] を選択します。キャッシングの詳細については、「メソッドパラメータまたは統合パラメータをキャッシュキーとして使用して、キャッシュされたレスポンスにインデックスを付ける」を参照してください。
クエリ文字列パラメータを削除するには、[削除] を選択します。
-
-
メソッドにヘッダーパラメータを追加するには、以下の操作を実行します。
-
[HTTP リクエストヘッダー] を選択した後、[ヘッダーの追加] を選択します。
-
[名前] に、ヘッダーの名前を入力します。
-
新しく作成されたヘッダーがリクエスト検証に使用される場合は、[必須] を選択します。リクエスト検証の詳細については、「API Gateway でリクエストの検証を使用する」を参照してください。
-
新しく作成されたヘッダーがキャッシングキーの一部として使用される場合は、[キャッシュ] を選択します。キャッシングの詳細については、「メソッドパラメータまたは統合パラメータをキャッシュキーとして使用して、キャッシュされたレスポンスにインデックスを付ける」を参照してください。
ヘッダーを削除するには、[削除] を選択します。
-
-
POST
、PUT
、またはPATCH
HTTP 動詞でメソッドリクエストのペイロード形式を宣言するには、[リクエスト本文] を選択して以下を実行します。-
[モデルの追加] を選択します。
-
[コンテンツタイプ] に MIME タイプ (
application/json
など) を入力します。 -
[モデル] では、ドロップダウンメニューからモデルを選択します。API で現在使用可能なモデルには、すでに作成して API の [モデル] コレクションに追加しているモデルに加え、デフォルトの
Empty
およびError
モデルが含まれます。モデル作成についての詳細は、データモデルを理解する を参照してください。注記
モデルはペイロードの予測されるデータ形式をクライアントに通知するのに便利です。スケルトンベースのマッピングテンプレートを作成するのに役立ちます。API の厳密に型指定された SDK を Java、C#、Objective-C、および Swift などの言語で作成することが重要です。ペイロードに対するリクエスト検証が有効になっている場合にのみ必要です。
-
-
[Save (保存)] を選択します。
API Gateway コンソールで API Gateway メソッドレスポンスをセットアップする
API メソッドには、1 つ以上のレスポンスを含めることができます。各レスポンスは HTTP ステータスコードでインデックス作成されます。デフォルトでは、API Gateway コンソールはメソッドレスポンスに 200
レスポンスを追加します。たとえばこれを修正し、メソッドが 201
を返すように設定できます。アクセス拒否の 409
や、初期化されていないステージ変数が使用されている場合の 500
など、その他のレスポンスを追加することもできます。
API Gateway コンソールを使用してレスポンスを変更、削除、または API メソッドに追加するには、次の手順に従います。
-
[リソース] ペインでメソッドを選択した状態で、[メソッドレスポンス] タブを選択します。タブを表示するには、右矢印ボタンを選択する必要がある場合があります。
-
[メソッドレスポンスの設定] セクションで、[レスポンスを作成] を選択します。
-
[HTTP ステータスコード] には、
200
、400
、または500
などの HTTP ステータスコードを入力します。バックエンドが返したレスポンスに対応するメソッドレスポンスが定義されていない場合、API Gateway はクライアントにレスポンスを返しません。代わりに、
500 Internal server error
エラーレスポンスを返します。 -
[ヘッダーの追加] を選択します。
-
[ヘッダー名] に名前を入力します。
バックエンドからクライアントにヘッダーを返すには、メソッドレスポンスにヘッダーを追加します。
-
[モデルを追加] を選択して、メソッドレスポンス本文の形式を定義します。
[コンテンツタイプ] にレスポンスペイロードのメディアタイプを入力し、[モデル] ドロップダウンメニューからモデルを選択します。
-
[Save (保存)] を選択します。
既存のレスポンスを変更するには、メソッドレスポンスに移動し、[編集] を選択します。HTTP ステータスコードを変更するには、[削除] を選択し、新しいメソッドレスポンスを作成します。
バックエンドから返されたすべてのレスポンスで、互換性のあるレスポンスをメソッドレスポンスとして設定する必要があります。ただし、バックエンドの結果がクライアントに返される前にメソッドレスポンスにマッピングされない場合を除き、メソッドレスポンスのヘッダーとペイロードモデルの設定はオプションです。API のために厳密に型指定された SDK を作成している場合は、メソッドレスポンスペイロードモデルも重要です。