マッピングテンプレートを使用して、API のリクエストおよびレスポンスパラメータとステータスコードをオーバーライドする
標準 API Gateway パラメータとレスポンスコードのマッピングテンプレートを使用すると、パラメータを 1 対 1 でマッピングし、正規表現で一致する統合レスポンスステータスコードの一群を単一のレスポンスステータスコードにマッピングすることができます。マッピングテンプレートのオーバーライドを使用すると、次のことができます。
-
多対 1 のパラメータマッピングを実行する
-
標準 API Gateway マッピングが適用された適用された後にパラメータをオーバーライドする
-
本文の内容やその他のパラメータ値に基づいて条件付きでパラメータをマッピングする
-
プログラムで新しいパラメータを作成する
-
統合エンドポイントから返されたステータスコードをオーバーライドする
あらゆるタイプのリクエストパラメータ、レスポンスヘッダー、またはレスポンスステータスコードはオーバーライドされます。
API のリクエストとレスポンスのパラメータとステータスコードをオーバーライドするユースケース
API では、API のマッピングテンプレートオーバーライドを使用して、以下を行うことができます。
-
2 つのパラメータを連結した新しいヘッダーを作成する (または既存のヘッダーをオーバライドする) には
-
本文の内容に基づく成功または失敗コードにレスポンスコードをオーバーライドするには
-
パラメータまたはその他のパラメータの内容に基づいて、条件付きでパラメータを再マッピングするには
-
JSON 本文の内容を反復処理し、ヘッダーやクエリ文字列にキーと値のペアを再マッピングするには
API のリクエストとレスポンスのパラメータとステータスコードをオーバーライドする場合の考慮事項
以下の考慮事項は、マッピングテンプレートのオーバーライドの使用に影響する可能性があります。
-
マッピングテンプレートオーバーライドは、データマッピングが不足しているため、プロキシ統合エンドポイントで使用することはできません。統合の詳細については、API Gateway API 統合タイプの選択 を参照してください。
-
オーバーライドは最終的なものです。オーバーライドは各パラメータに一度だけ適用できます。同じパラメータを複数回オーバーライドしようとすると、API Gateway から
5XX
レスポンスが返されます。テンプレート全体で同じパラメータを複数回オーバーライドする必要がある場合は、変数を作成してテンプレートの終了時にオーバーライドを適用することをお勧めします。テンプレートはテンプレート全体が解析された後にのみ適用されます。詳細については、「AWS Management Console を使用して API のリクエストパラメータとヘッダーをオーバーライドする」を参照してください。
マッピングテンプレートオーバーライドのリファレンス
マッピングテンプレートオーバーライドを作成するには、マッピングテンプレートで以下のいずれかの $context 変数を使用します。
リクエストボディのマッピングテンプレート | レスポンスボディのマッピングテンプレート |
---|---|
$context.requestOverride.header. |
$context.responseOverride.header. |
$context.requestOverride.path. |
$context.responseOverride.status |
$context.requestOverride.querystring. |
なし |
API のリクエスト、レスポンスパラメータおよびステータスコードをオーバーライドする例については、「API のリクエスト、レスポンスパラメータおよびステータスコードをオーバーライドする例」を参照してください。