API Gateway のメソッドレスポンスをセットアップする - Amazon API Gateway

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API Gateway のメソッドレスポンスをセットアップする

API メソッドレスポンスは、クライアントが受信する API メソッドリクエストの出力をカプセル化します。出力データには、HTTP ステータスコード、一部のヘッダー、さらに場合によっては本文が含まれます。

非プロキシ統合を使用すると、指定されたレスポンスパラメータと本文は、関連する統合レスポンスデータからマッピングできます。また、マッピングに従って特定の静的な値を割り当てることができます。これらのマッピングは統合レスポンスで指定されています。マッピングは、そのままで統合レスポンスを通過する同一の変換になることがあります。

プロキシ統合により、API Gateway はバックエンドレスポンスを自動的にメソッドレスポンスにパスします。API メソッドレスポンスをセットアップする必要はありません。ただし、Lambda プロキシ統合の場合、Lambda 関数は API Gateway 用にこの出力形式で結果を返し、統合レスポンスをメソッドレスポンスにマッピングする必要があります。

プログラムでは、メソッドレスポンスのセットアップは、API Gateway のMethodResponseリソースを作成し、statusCode 、responseParameters 、および responseModels のプロパティを設定することになります。 responseParameters

API メソッドにステータスコードを設定する場合、予期せぬステータスコードのあらゆる統合レスポンスを処理するためのデフォルト設定を 1 つ選択する必要があります。これはキャスティングやマッピングされないサーバー側エラーのレスポンスになるため、デフォルトとして 500 を設定することが合理的です。ここでは説明のために、API Gateway コンソールはデフォルトとして 200 レスポンスを設定しています。しかし、これは 500 レスポンスにリセットできます。

メソッドレスポンスを設定するには、先にメソッドリクエストを作成している必要があります。

メソッドレスポンスステータスコードをセットアップする

メソッドレスポンスのステータスコードは、レスポンスのタイプを定義します。たとえば、200、400、500 のレスポンスは、それぞれ正常なクライアント側エラーレスポンスを示します。

メソッドレスポンスステータスコードをセットアップするには、statusCode プロパティを HTTP ステータスコードに設定します。次の AWS CLI コマンドは、200 のメソッドレスポンスを作成します。

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200

メソッドレスポンスパラメータをセットアップする

メソッドレスポンスパラメータは、関連するメソッドリクエストへのレスポンスとしてクライアントが受信するヘッダーを定義します。レスポンスパラメータは、API Gateway が API メソッドの統合レスポンスに示されたマッピングに応じて統合レスポンスパラメータをマッピングするターゲットも指定します。

メソッドレスポンスパラメータをセットアップするには、responseParameters 形式の MethodResponse キー値のペアの "{parameter-name}":"{boolean}" マップに追加します。次の CLI コマンドは、 my-headerヘッダーを設定する例を示しています。

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.response.header.my-header=false

メソッドレスポンスモデルをセットアップする

メソッドレスポンスモデルは、メソッドレスポンス本文の形式を定義します。レスポンスモデルを設定する前に、API Gateway でモデルを作成する必要があります。そのために、create-model コマンドを呼び出すことができます。次の例に、PetStorePet メソッドリクエストへのレスポンスの本文を説明する GET /pets/{petId} モデルの作成方法を示します。

aws apigateway create-model \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --content-type application/json \ --name PetStorePet \ --schema '{ \ "$schema": "http://json-schema.org/draft-04/schema#", \ "title": "PetStorePet", \ "type": "object", \ "properties": { \ "id": { "type": "number" }, \ "type": { "type": "string" }, \ "price": { "type": "number" } \ } \ }'

結果は、API Gateway Model リソースとして作成されます。

メソッドレスポンスモデルを設定してペイロード形式を定義するには、「application/json":"PetStorePet」キーと値のペアを MethodResponseリソースのrequestModelsマップに追加します。次の の AWS CLI コマンドは、これを行う方法put-method-responseを示しています。

aws apigateway put-method-response \ --region us-west-2 \ --rest-api-id vaz7da96z6 \ --resource-id 6sxz2j \ --http-method GET \ --status-code 200 \ --response-parameters method.response.header.my-header=false \ --response-models '{"application/json":"PetStorePet"}'

メソッドレスポンスモデルのセットアップは、API のために厳密に型指定された SDK を作成する際に必要です。これにより、出力が Java や Objective-C の適切なクラスに確実にキャストされるようになります。それ以外の場合は、モデルの設定はオプションです。