无法访问AWS Api Gateway内的查询字符串参数

时间:2017-11-13 16:10:58

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

我在AWS API Gateway上使用GET方法配置了资源。集成类型配置为HTTP,但似乎在没有Lambda函数的情况下我无法访问Url查询字符串参数。

例如 我有api端点https://api.domain.com/v1/object/500?param_id=305,我想将其与现有的http集成,例如http://somedomain.com/object/500?param_id=305

当我定义端点URL,例如http://somedomain.com/object/ {id}?param_id = {param_id}时,我无法将param_id定义为url查询字符串参数 enter image description here

我收到以下错误:

Invalid mapping expression specified: Validation Result: warnings : [], errors : [Invalid mapping expression parameter specified: method.request.querystring.param_id

如何在不使用Lambda函数的情况下访问查询字符串参数?

1 个答案:

答案 0 :(得分:0)

您可以在集成请求部分中使用正文映射模板,并获取请求正文和查询字符串。在body body模板上构造一个新的JSON,它将包含来自请求体和查询字符串的数据。当我们添加正文映射模板时,您的业务逻辑将获取我们在正文映射模板中构建的JSON。

要获取查询字符串的体内映射模板,请执行,

$ input.params(' querystringkey&#39)

例如,在体内映射模板中,



#set($inputRoot = $input.path('$'))
{
"firstName" : "$input.path('$.firstName')", //This is to get path variable
"lastName" : "$input.path('$.lastName')"
"language" : "$input.params('$.language')" //This is to get query string
}




有关身体贴图模板的详细信息,请阅读https://aws.amazon.com/blogs/compute/tag/mapping-templates/