微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

表单 – 使用AWS API Gateway和Lambda从multipart / form-data获取非文件正文

我试图通过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的模板映射到Input passthrough.这也没有帮助.

我确实遇到了另一个关于使用multipart / form-data上传文件question,但由于我对文件不感兴趣,只是正文,这个答案没有帮助.

下面通过runco​​pe找到捕获的帖子的截图(对不起).

解决方法

如果目标是使用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发布

原文地址:https://www.jb51.cc/html/225781.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐