假设我在API网关中有一个类似:/foo/{bar}的资源。我想通过集成请求模板将请求路径转换为/bing/baz/{bar}。
直接通过在请求正文中设置"bar"
{ "bar": "$inputs.params('bar')" }
如何在请求时重写目标路径?
解决方案在此处的"示例请求响应"中有所提示:
https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
但这些文档并没有准确地概述"With input template:"的功能。
Resource: /things/{id}
With input template:
{
"id" : "$input.params('id')",
"count" : "$input.path(‘$.things').size()",
"things" : $input.json(‘$.things')
}
您可能正在寻找映射模板变量'$context.resourcePath',该变量将为您提供发出请求的资源路径。
编辑:
您可以在HTTP集成的URI字段中使用路径参数,这允许您将正文中的参数或字段动态映射到目标路径。语法与资源相同,因此参数周围的花括号如"http://myapi.com/foo/bar/{baz}"。
然后,您将能够为"baz"指定一个映射表达式。