【发布时间】:2017-12-24 00:09:20
【问题描述】:
我在使用 AWS API Gateway 时遇到问题,我的所有输入组合都可以正常工作,但其中一个会抛出另一个传入的值。
这是我的模板...
#set($greet = $input.params('greet'))
#set($name = $input.params('username'))
{
#if($greet != "")
"greet": "$greet"
#if($name != "")
,
#end
#end
#if($name != "")
"name": "$name"
#end
}
我的网址是/user/{username}/say/{greet}
当我测试端点并且不发送问候语或用户名时,它可以工作。当我发送问候语但没有用户名时,它可以工作。当我发送问候语和用户名时,它可以工作。 (“作品”是指它将值传递给我的 lambda 函数。)
但由于某种原因,当我发送用户名但没有问候时,映射会完全丢弃用户名并且不会发送它(就像 $name = '')。它仍然会到达正确的端点,因为正确的 lambda 函数会执行,映射只是发送一个空对象而不是仅具有 name 属性的对象。
谁能看到我做错了什么?
【问题讨论】:
-
如果这两个值都没有设置,您的 JSON 正文似乎无效,包含
{ , }。 -
@Michael-sqlbot 如果两者都没有设置,则 JSON 正文是有效的,因为它只会吐出
{ }。我已经验证了这按预期工作。这是给出用户名的情况,但由于某种原因没有返回任何问候。 -
你说得对,我看错了。
标签: amazon-web-services aws-lambda aws-api-gateway