我希望在将请求主体和查询字符串参数发送到lambda之前将它们组合在一起。我们假设我在Lambda中有一个实体,如下所示:
Class Person {
private String firstName;
private String lastName;
private String language;
}
发送到api网关的json是{"firstName":"Foo","lastName":"Bar"}
如您在请求正文中看到"语言" 字段缺少。我想从查询字符串中获取语言字段并添加到json。
我怎么能实现这个目标?
集成请求部分有办法吗? 例如:
$input.json(x).append("language":"$input.params('name')")
我找不到任何有价值的信息。 提前谢谢。
答案 0 :(得分:3)
您可以在集成请求部分中使用正文映射模板,并获取请求正文和查询字符串。在body body模板上构造一个新的JSON,它将包含来自请求体和查询字符串的数据。当我们添加正文映射模板时,您的业务逻辑将获取我们在正文映射模板中构建的JSON。
要获取查询字符串的体内映射模板,请执行,
#set($inputRoot = $input.path('$'))
{
"firstName" : "$input.path('$.firstName')",
"lastName" : "$input.path('$.lastName')"
"language" : "$input.params('$.language')"
}
例如,在体内映射模板中,
{{1}}
有关身体贴图模板的详细信息,请阅读https://aws.amazon.com/blogs/compute/tag/mapping-templates/