我正在尝试通过Java调用AWS Lambda,以便使用JSON文件调用我的REST API。JSON文件看起来像这样:
{
"httpMethod": "PUT",
"headers": {
"accept": "application/json"
},
"path": "/some-api/v1/channels/company/employees/{id}",
"pathParameters": {
"id": "%s"
},
"body" : "{\"name\": \"Jeff\", \"language\": \"en-US\", \"job\": {\"location\": \"NYC\", \"jobCode\": \"0000\"}}",
"isBase64Encoded": false
}
路径中的{id}
应该被替换为pathParameters
中的id。我可以看到pathParameters
中的id在调用AWS Lambda时被替换,而不是实际路径中的{id}
。这抛出了一个非法字符参数异常,因为在调用我的API时没有填充{}
。我需要在这里换什么?
注意:我没有使用API网关,所以请不要建议Map或任何我必须在UI中做的事情,除非它可以在JSON本身完成。
2条答案
按热度按时间fwzugrvs1#
看起来
pathParameters
只响应resource
标记。我通过将%s
添加到路径的末尾来解决这个问题。:谢谢你的文档,AWS。
tf7tbtn22#
对于那些仍然在寻找这些信息的人,您也可以将
pathParameters
添加到JSON中:这是直接从lambda中获取的,如果您使用SDK中的
pathParameters
函数,则不需要显式设置resource
或path
值。