Nic*_*ick 7 amazon-web-services aws-lambda aws-api-gateway
我似乎无法弄清楚如何使用资源的Integration Request中的映射模板创建可选的查询字符串参数.
我的模板看起来像这样:
{ "limit": "$input.params('limit')", "post_date":"$input.params('post_date')" }
Run Code Online (Sandbox Code Playgroud)
我希望'limit'和'post_date'是可选的.此模板在未提供这些参数时创建一个如下所示的查询字符串:
/myresource?limit=undefined&
Run Code Online (Sandbox Code Playgroud)
当我期待:
/myresource
Run Code Online (Sandbox Code Playgroud)
该文件似乎并没有掩盖这一点.我在文档中找到了一些示例模板,它们使用类似bash的语法来提供条件功能.我已尝试测试以下内容,但不会在AWS控制台中进行验证:
#set($limit = $input.path('limit'))
{
#if($limit)"limit": "$input.params('limit')",#end
}
Run Code Online (Sandbox Code Playgroud)
我是在正确的轨道上吗?
谢谢!
是的,你绝对可以在 Api Gateway 中做到这一点;虽然它似乎没有很好的记录!
在您的问题中,您提到这是一个参数;但是您使用了 input.path,它通常指的是 POST 请求正文中的一个元素。以下应该工作:
#set($limit = $input.params('limit'))
{
#if($limit && $limit.length() != 0)
"limit": "$input.params('limit')"
#end
}
Run Code Online (Sandbox Code Playgroud)
在文档方面,我发现来自 AWS 的以下页面实际上非常有用。不过,它隐藏在有关模拟端点的部分中:
http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-mock-integration.html
| 归档时间: |
|
| 查看次数: |
3060 次 |
| 最近记录: |