全部產品
Search
文件中心

API Gateway:請求應答改寫外掛程式(僅專享執行個體)

更新時間:Jan 04, 2025

請求應答改寫外掛程式支援對HTTP請求和響應的內容進行定製化修改,例如修改請求的Header、Query和Form等參數,以及調整響應的狀態代碼和Header等資訊。

1. 概述

請求應答改寫外掛程式允許您配置一系列內容修改策略,策略包含修改的類型和參數資訊,API Gateway將根據您提供的策略配置對HTTP請求或響應的內容進行改寫。

HTTP請求支援的修改類型包括:

  • addRequestParameterIfAbsent:添加請求參數,如果參數已存在則不做處理,需提供參數的位置、名稱以及參數值。

  • putRequestParameter:添加請求參數,如果參數已存在則覆蓋原有的參數值,需提供參數的位置、名稱以及參數值。

  • removeRequestParameter:刪除請求參數,需提供參數的位置和名稱。

HTTP響應支援的修改類型包括:

  • setResponseStatusCode:設定響應的狀態代碼,該狀態代碼會覆蓋後端服務返回的狀態代碼。

  • addResponseHeaderIfAbsent:添加響應的Header,如果Header已存在則不做處理,需提供參數名和參數值。

  • putResponseHeader:添加響應的Header,如果Header已存在則覆蓋原有的參數值,需提供參數名和參數值。

  • removeResponseHeader:移除響應的Header,需提供參數名。

說明

修改請求時,支援的參數位置包括Header、Query以及Form等。修改響應時,僅支援Header參數。

重要

在將請求傳遞給後端服務之前,API Gateway會先執行外掛程式中配置的Request改寫策略,該過程會在參數映射操作(如果有配置的話)完成之後進行。在向用戶端返回後端服務的響應之前,API Gateway會執行外掛程式中配置的Response改寫策略,該過程會在錯誤碼映射外掛程式(如果有配置的話)處理之後進行。

2. 配置樣本

可以選擇JSON或YAML格式來配置您的外掛程式,兩種格式的Schema相同,可以搜尋yaml to json轉換工具來進行配置格式的轉換,YAML格式的模板如下:

---
addRequestParameterIfAbsent:         # 若Request中不存在該參數,則添加,否則保持不變
  - name: userId                     # 參數名
    value: 123456                    # 參數值
    location: query                  # 參數位置
putRequestParameter:                 # 向Request中添加參數,已存在的參數會被覆蓋
  - name: name
    value: Jack
    location: header
removeRequestParameter:              # 刪除Request中的參數
  - name: address
    location: form
setResponseStatusCode: 200           # 設定Response的狀態代碼
addResponseHeaderIfAbsent:           # 若Response的Header中不存在該參數,則添加,否則保持不變
  - name: age
    value: 18
putResponseHeader:                   # 向Response的Header中添加參數,已存在的參數會被覆蓋
  - name: name
    value: Alice
removeResponseHeader:                # 刪除Response Header中的參數
  - name: phone

以上述配置中的addRequestParameterIfAbsent和putResponseHeader為例:

  • addRequestParameterIfAbsent:網關向後端服務轉寄請求時,如果請求的Query中不包含userId,那麼網關會添加該參數,參數值為123456,但如果userId已經存在,那麼網關不會對其進行修改。

  • putResponseHeader:無論後端響應的Header中是否包含age,網關都會在Header中添加age參數,參數值為18,原有的age參數值會被覆蓋。

3. 使用限制

請求應答改寫外掛程式僅適用於專享執行個體。

2024-04-02之前購買的專享執行個體,如果不生效需提交工單升級執行個體版本。