代码之家  ›  专栏  ›  技术社区  ›  vaa

AWS API网关:如何删除/替换HTTP代理直通集成中的查询字符串参数?

  •  0
  • vaa  · 技术社区  · 4 年前

    当我查询 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 配置

    问题 : 我应该如何配置一个集成 apiKey=AAA 从客户端调用中删除或在集成步骤中替换为 111 所以只有一个 apiKey 到后台了吗?

    笔记 :

    • 通过代理传递集成,映射模板不可用;
    • 这种配置的原因是,我的传统后端有大量端点,无法单独配置。

    我的设置 :

    • 我创建了一个新的REST API。
    • 然后我创建了一个新的配置作为代理资源,名为 proxy 具有资源路径 /{proxy+} 使用以下设置 ANY 方法作为代理集成:
      • 集成型 HTTP Proxy
      • 端点URL: https://api.mysite.com/{proxy}
      • 内容处理: Passthrough
    • 作为下一步,我已经配置了 集成请求 为了我的 /{proxy+} - ANY 通过向 URL Query String Parameters 第节:
      • 姓名: myApiKey
      • 映射自: '111'
    • 然后我点击 Deploy API test 登台亮相 调用URL 比方说: https://xxx.execute-api.yyy.amazonaws.com/test .
    0 回复  |  直到 4 年前
        1
  •  1
  •   Balu Vyamajala    4 年前

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

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

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