Aws Api网关集成请求如何附加属性以请求正文?

时间:2017-09-25 14:04:59

标签: amazon-web-services aws-lambda aws-api-gateway

我希望在将请求主体和查询字符串参数发送到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')")

我找不到任何有价值的信息。 提前谢谢。

1 个答案:

答案 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/