マッピングテンプレートを使用して、API のリクエストおよびレスポンスパラメータとステータスコードをオーバーライドする - Amazon API Gateway

マッピングテンプレートを使用して、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.header_name $context.responseOverride.header.header_name
$context.requestOverride.path.path_name $context.responseOverride.status
$context.requestOverride.querystring.querystring_name なし

API のリクエスト、レスポンスパラメータおよびステータスコードをオーバーライドする例については、「API のリクエスト、レスポンスパラメータおよびステータスコードをオーバーライドする例」を参照してください。