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

2024-05-12

我正在尝试从multipart/form-data POST通过 API 网关连接到我的 AWS Lambda Web 服务。

超文本传输​​协议POST具有内容类型“multipart/form-data”和 URL 编码的正文。文件数据也在这篇文章中发送(因此我猜是多部分的)。

Web服务需要与第三方服务集成,因此需要改变Web服务的格式POST并不是一个真正的选择。

我见过这个谈论将 URL 编码数据转换为 JSON 对象以在 Lambda 中使用,但这并不能解决问题。

我也尝试过设置整合请求 -> 映射模板对于内容类型multipart/form-data to 输入直通。这也没有帮助。

我确实遇到了另一个question https://stackoverflow.com/q/31645205/8524关于使用上传文件multipart/form-data,但由于我对文件不感兴趣,只对正文感兴趣,所以这个答案没有帮助。

下面是通过 runscope 捕获的帖子的屏幕截图(抱歉)。


如果目标是使用 Lambda,您需要将有效的 JSON 传递给该函数。目前,还没有一种方法可以对 Api Gateway 内的非 JSON 数据进行 JSON 化。

我们的短期修复(在我们的积压工作中)是在映射模板中提供一个变量来获取请求的原始输入。这样您就可以使用如下模板进行简单的 JSON 转换:

{
    "body" : "$input.body"
}

或类似的东西。

查看映射模板参考以获取更多信息:http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

编辑 4/7 - 功能已作为 $input.body 发布

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AWS API Gateway 和 Lambda 从 multipart/form-data 获取非文件正文 的相关文章

随机推荐