如何通过S3 json文件后端在API网关中传递查询参数

问题描述

我是AWS的新手,我已经按照本教程进行操作:https://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html,现在我可以从TEST控制台读取存储在s3上的AWS对象,该对象是以下内容(它是.json文件):

[ { “重要”:“是”, “ name”:“ john”, “类型”:“男性” }, { “重要”:“是”, “ name”:“ Sarah”, “类型”:“女性” }, { “重要”:“否”, “ name”:“ maxim”, “类型”:“男性” } ]

现在,我要实现的是传递查询参数。我在方法请求中添加 type ,并在Integration中添加了带有 method.request.querystring.type 映射的名为 type 的URL查询字符串参数。请求。

当我要测试时,不考虑键入 type = male ,我仍然得到3个元素而不是2个男性元素。

您认为这是什么原因吗?

有关信息,以下是资源(并且我正在使用 AWS Service 集成类型来创建GET方法,如AWS教程中所述)

/
 /{folder}
  /{item}
   GET

解决方法

如果有人对答案感兴趣,我已经能够解决我的问题。

完整详细的解决方案需要一个教程,但这里是主要步骤。困难在于许多活动部件,因此重要的是要独立测试每个部件以取得进展(你会告诉我这是非常基本的)。

  1. 确保您对 s3 数据库的 SQL 查询是正确的,为此您可以进入 s3 存储桶,单击您的文件并从操作中选择“使用 s3 选择查询”。

  2. 确保您的 lambda 函数有效,因此请检查您是否从测试事件构建并传递了正确的 SQL 查询

  3. 在 Method Request 面板中设置 API 查询字符串并在 Integration Request 面板中设置映射模板(对我来说它看起来像这样“TypeL1”:“$input.params('typeL1')”)使用json 内容类型

祝你好运!