簡體   English   中英

AWS API 網關:如何刪除/替換 HTTP 代理直通集成中的查詢字符串參數?

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

當我使用以下設置查詢我的Invoke URLhttps://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的新 Configure as a Proxy 資源,其資源路徑為/{proxy+}並針對ANY方法進行以下設置作為代理集成:
    • 集成類型HTTP Proxy
    • 端點 URL: https://api.mysite.com/{proxy}
    • 內容處理: Passthrough
  • 下一步,我通過將新的查詢字符串添加到URL Query String Parameters部分,為我的/{proxy+} - ANY配置了一個Integration Request
    • 名稱: myApiKey
    • 映射自: '111'
  • 然后我單擊Deploy APItest階段並獲取Invoke URL ,比方說: https://xxx.execute-api.yyy.amazonaws.com/test

即使使用代理集成,我們仍然可以覆蓋請求和響應。 是博客。 讓我試着總結一下。

  • 確保未選中Use Proxy Integration
  • Mapping Template 中的簡單VTL 模板,用於替換apiKey queryParameter。
 #set($newApiKey = "abcd") $input.json("$") #set($context.requestOverride.querystring.apiKey = $newApiKey)
  • 添加方法響應示例響應代碼 200、400 和 500。
  • 為每個響應代碼的每個狀態代碼添加集成響應,例如 http status for 2xx 2\d{2} with pass through behavior。

假設我們有路徑/someapi/sompathproxy設置。 上面的模板會將/someapi/sompath?apiKey=100替換為{proxy}?apiKey=abcd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM