使用映射模板覆盖 API 的请求和响应参数以及状态代码 - Amazon API Gateway

使用映射模板覆盖 API 的请求和响应参数以及状态代码

利用标准 API Gateway 参数和响应代码映射模板,您可以一对一地映射参数,并将一系列集成响应状态代码(由正则表达式匹配)映射到单个响应状态代码。利用映射模板覆盖,可以执行以下操作。

  • 执行多对一参数映射

  • 在应用标准 API Gateway 映射后覆盖参数

  • 根据正文内容或其他参数值有条件地映射参数

  • 以编程方式创建新参数

  • 覆盖由集成端点返回的状态代码

可覆盖任何类型的请求参数、响应标头或响应状态代码。

覆盖 API 的请求和响应参数以及状态代码的使用案例

在您的 API 中,可以使用针对 API 的映射模板覆盖来执行以下操作。

  • 创建新的标头(或覆盖现有标头)作为两个参数的联接

  • 根据正文内容覆盖响应代码以获得成功或失败代码

  • 根据一个参数的内容或其他参数的内容有条件地重新映射该参数

  • 循环访问 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 的请求和响应参数以及状态代码的示例