目标:获取调用AWS-API网关上的资源(路由)的方法。
我的进度:我有一个端点,它有GET,PATCH,POST方法,在集成请求步骤中映射到模板。 PATCH的模板如下所示:
"editJobsTemplate": {
"application/json": {
"method": "$context.httpMethod",
"job": "$input.json('$.job')"
}
}
使用this document创建。
问题:当PATCH正文为空时,我会得到如下响应:
{
"eventType": {
"method": "PATCH",
"job": ""
}
}
但是当有一个对象将'job'作为在身体中发送的密钥时......
{
"job":"some text value"
}
然后响应如下:
{
"eventType": {
"job": "some text value"
}
}
编辑1
This是API网关资源面板中模板的屏幕截图。
我在Postman上测试了以获得this result
编辑2 This将根据b.b3rn4rd的响应显示Content-Type标头设置为application / json,this显示我之后得到的响应。
答案 0 :(得分:1)
调用端点时,请确保指定适当的内容类型标头。在你的情况下,它可能是Content-Type: application/json
,否则,将跳过请求映射,并且请求将按原样传递给(lambda?)。
此外,我已经发现了"job": "$input.json('$.job')"
,
应该是:
"job" : $util.escapeJavaScript($input.json('$.job'))
没有引号!