API Gateway の REST API のメソッド
API Gateway では、API メソッドにメソッドリクエストとメソッドレスポンスが含まれます。API メソッドをセットアップし、バックエンドのサービスへのアクセスをリクエストするためにクライアントが実行しなければならない操作を定義し、その操作によってクライアントが受け取るレスポンスを定義します。入力では、クライアント用にメソッドリクエストパラメータか該当するペイロードを選択し、実行時に必須データやオプションデータを提供できます。出力では、メソッドレスポンスステータスコード、ヘッダー、該当する本文をターゲットとして定義し、クライアントに返される前のバックエンドレスポンスデータをマッピングできます。API の動作および入出力形式に関するデベロッパーの理解を促進するために、API をドキュメント化し、無効なリクエストに関する適切なエラーメッセージを提供することができます。
API メソッドリクエストは、HTTP リクエストです。メソッドリクエストをセットアップするには、HTTP メソッド (または動詞)、API リソースへのパス、ヘッダー、該当するクエリ文字列パラメータを設定します。HTTP メソッドが POST
、PUT
、または PATCH
の場合、ペイロードも設定できます。たとえば、PetStore サンプル API を使用してペットを取得するには、GET
/pets/{petId}
の API メソッドリクエストを定義します。{petId}
は、実行時に数字をとることができるパスパラメータです。
GET /pets/1 Host: apigateway.us-east-1.amazonaws.com ...
クライアントが誤ったパスを指定すると (/pet/1
ではなく /pets/one
や /pets/1
など)、例外がスローされます。
API メソッドレスポンスは、指定のステータスコードの HTTP レスポンスです。非プロキシ統合では、メソッドレスポンスをセットアップしてマッピングの必須ターゲットまたはオプションたーげえとを指定する必要があります。これらは、統合レスポンスのヘッダーや本文を関連するメソッドレスポンスのヘッダーや本文に変換します。このマッピングは、そのまま統合を介してヘッダーまたは本文を渡す単純な ID 変換200
メソッドレスポンスに、成功した統合レスポンスがそのまま通過する例を示します。
200 OK Content-Type: application/json ... { "id": "1", "type": "dog", "price": "$249.99" }
原理上は、バックエンドからの特定のレスポンスに対応するメソッドレスポンスを定義することができます。通常、これにはあらゆる 2XX、4XX、および 5XX レスポンスが含まれます。ただし、バックエンドが返すすべてのレスポンスを前もって把握できない可能性があるため、この手順は実用的でないことがあります。実際には、1 つのメソッドレスポンスをデフォルトとして指定し、バックエンドからの不明なレスポンスやマッピングされていないレスポンスを処理することができます。デフォルトとして 500 レスポンスを指定することをお勧めします。いずれの場合も、非プロキシ統合に対してメソッドレスポンスを 1 つ以上セットアップする必要があります。そうしなければ、バックエンドでリクエストが成功した場合であっても API Gateway が クライアントに 500 のエラーレスポンスを返します。
Java SDK など厳密に型指定された SDK を API 用にサポートするには、メソッドリクエストの入力用とメソッドレスポンスの出力用のデータモデルを定義する必要があります。
前提条件
API メソッドをセットアップする前に、以下について検証します。
-
メソッドが API Gateway で使用可能であることが必要です。「チュートリアル: HTTP 非プロキシ統合を使用して REST API を作成する」の手順に従います。
-
メソッドと Lambda 関数を通信させるには、IAM で Lambda 呼び出しロールと Lambda 実行ロールを作成済みである必要があります。メソッドが AWS Lambda で通信するための Lambda 関数も作成しておく必要があります。ロールと関数を作成するには、AWS Lambda 統合を選択するチュートリアル の「Lambda 非プロキシ統合用の Lambda 関数の作成」で説明する指示に従ってください。
-
メソッドを HTTP または HTTP プロキシ統合と通信させるには、メソッドが通信する HTTP エンドポイント URL をすでに作成してアクセスを確立している必要があります。
-
HTTP および HTTP プロキシエンドポイントの証明書が API Gateway によりサポートされていることを確認します。詳細については、「API Gateway での HTTP および HTTP プロキシ統合のための API Gateway 対応の証明機関」を参照してください。
注記
REST API コンソールを使用してメソッドを作成する場合、統合リクエストとメソッドリクエストの両方を設定します。詳細については、「API Gateway コンソールを使用して API 統合リクエストを設定する」を参照してください。