AWS API 网关:如何在 HTTP 代理直通集成中 remove/replace 查询字符串参数?

AWS API Gateway: How to remove/replace query string parameter in HTTP Proxy Passthrough integration?

当我使用以下设置将 Invoke URL 查询为 https://xxx.execute-api.yyy.amazonaws.com/test/q?apiKey=AAA 时,我的后端收到一个调用 https://api.mysite.com/q?apiKey=AAA&apiKey=111:一个 apiKey=AAA 来自客户端,第二个- apiKey=111 来自 Integration Request 配置。

问题: What/How 我是否应该配置一个 apiKey=AAA 从客户端调用中删除或在集成步骤中替换为 111 值的集成,以便只有一个 apiKey 进入后端?

:

我的设置:

即使使用代理集成,我们仍然可以覆盖请求和响应。 Here 是博客。让我试着总结一下。

  • 确保未选中 Use Proxy Integration
  • 映射模板中用于替换 apiKey 查询参数的简单 VTL 模板。
  #set($newApiKey = "abcd")
  $input.json("$")
  #set($context.requestOverride.querystring.apiKey = $newApiKey)
  • 添加方法响应示例响应代码 200、400 和 500。
  • 为每个响应代码的每个状态代码添加集成响应,例如具有传递行为的 2xx 2\d{2} 的 http 状态。

假设我们有一个 proxy 路径 /someapi/sompath 设置。以上模板会将 /someapi/sompath?apiKey=100 替换为 {proxy}?apiKey=abcd