我正在尝试通过API网关从multipart/form-data
POST
获取表单数据到我的ASW Lambda Web服务。
HTTP POST
具有Content-Type“multipart / form-data”和URL编码的正文。文件数据也在这篇文章中发送(因此我认为是多部分)。
Web服务需要与第三方服务集成,因此更改POST
的格式实际上不是一种选择。
我已经看到这个thread谈论将URL编码数据转换为JSON对象以便在Lambda中使用,但这并不能解决问题。
我也尝试过设置集成请求 - >内容类型multipart/form-data
的映射模板到输入直通。这也没有帮助。
我确实遇到过使用multipart/form-data
上传文件的另一个question,但由于我对该文件不感兴趣,只是正文,这个答案没有帮助。
下面通过runcope找到截获的截图(对不起)。
答案 0 :(得分:5)
如果目标是使用Lambda,则需要将有效的JSON传递给该函数。目前,Api Gateway内部的JSON-ify数据无法以非JSON数据形式出现。
我们的短期修复(在我们的待办事项上)是在映射模板中提供一个变量来获取请求的原始输入。这样你就可以使用如下模板进行简单的JSON转换:
{
"body" : "$input.body"
}
或类似的东西。
查看地图模板参考以获取更多信息:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
编辑4/7 - 功能已发布为$ input.body