使用映射模板覆盖 API 的请求和响应参数以及状态代码
利用标准 API Gateway 参数和响应代码映射模板,您可以一对一地映射参数,并将一系列集成响应状态代码(由正则表达式匹配)映射到单个响应状态代码。利用映射模板覆盖,可以执行以下操作。
-
执行多对一参数映射
-
在应用标准 API Gateway 映射后覆盖参数
-
根据正文内容或其他参数值有条件地映射参数
-
以编程方式创建新参数
-
覆盖由集成端点返回的状态代码
可覆盖任何类型的请求参数、响应标头或响应状态代码。
覆盖 API 的请求和响应参数以及状态代码的使用案例
在您的 API 中,可以使用针对 API 的映射模板覆盖来执行以下操作。
-
创建新的标头(或覆盖现有标头)作为两个参数的联接
-
根据正文内容覆盖响应代码以获得成功或失败代码
-
根据一个参数的内容或其他参数的内容有条件地重新映射该参数
-
循环访问 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 的请求和响应参数以及状态代码的示例。