要求和回應變數

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

向 API Proxy 提出要求時,您可以傳送下列任何或所有資訊: 視 API Proxy 的設定方式而定:

  • 要求標頭
  • 查詢參數
  • 表單資料
  • XML 或 JSON 酬載
  • 資源 URI

根據預設,要求中的所有資料都會從 ProxyEndpoint 傳送到 TargetEndpoint,因此,當 TargetEndpoint 向後端伺服器發出要求時, 會將原始要求中的資訊傳遞至後端服務。

對於 Edge 從後端服務收到的回應,同樣也是如此。根據預設 系統會將回應中所接收的資料直接傳遞至產生事件的應用程式。 請求。

如何將要求資料傳送至後端 服務?

下圖為 API Proxy 定義:

從 HTTP 用戶端透過 Proxy 端點傳遞至後端目標端點的要求,到達 HTTP 服務。我們提供了 Proxy 端點和目標端點的範例。

針對這個 API Proxy:

  • API Proxy 虛擬主機:「預設」
  • 虛擬主機定義的網域:「http://myOrg-prod.apigee.net」
  • Proxy 基本路徑:「/v1/weather」
  • 由轉送規則指定的 TargetEndpoint:「default」
  • 目標網址:「http://weather.yahooapis.com」

用戶端應用程式利用下列程式碼向 API Proxy 發出 GET 要求 curl 指令:

curl -X GET http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

請注意,這項要求包含資源「forecastrss」另一個查詢參數 w。邊緣將要求剖析為 ,然後將要求的各個部分指派給流程變數:

{request.verb} {proxy.basepath}/{proxy.pathsuffix}?{request.querystring}

流程變數是由下列值設定:

  • request.verb:「GET」
  • proxy.basepath:「/v1/weather」
  • proxy.pathsuffix:「預測者」
  • request.querystring: "w=12797282"
,瞭解如何調查及移除這項存取權。

然後,TargetEndpoint 會使用 要求:

{request.verb} {target.basepath}/{proxy.pathsuffix}?{request.querystring}

請注意,系統如何自動納入要求中指定的資源和查詢參數 傳送至後端伺服器要求時根據 TargetEndpoint 的定義,要求 格式如下:

curl -X GET http://weather.yahooapis.com/forecastrss?w=12797282

就像查詢參數,您在 API 要求中加入的任何標頭或表單參數 會將 Proxy 傳送至後端伺服器舉例來說,假設您提出的要求包含 標頭:

curl -X GET -H 'Content-type:application/xml' http://myOrg-prod.apigee.net/v1/weather/forecastrss?w=12797282

或者,請使用以下表單來加入標頭和表單資料:

curl -X POST -H "Content-type:application/json" -d \
  '{"email" : "janetutorialxml@example.com",
    "firstName" : "Jane",
    "lastName" : "Tutorial",
    "userName" : "jtutorialxml"
  }' \
  http://myOrg-prod.apigee.net/v1/register/user

在這兩個範例中,標頭和表單資料都不會影響到後端服務。 標頭是以流程變數表示,例如 request.headers.countrequest.headers.names。表單資料會以流程變數表示,例如 《request.formparam.count》和《request.formparam.names》。

回應資料如何傳回?

根據預設,Edge 從後端服務收到的所有資料都會傳遞 未套用至發出要求的應用程式。如上所述要求 可透過 Edge 上的流程變數存取回應中傳回的 回應。如需更多資訊 請參閱流程變數參考資料

以下位置的存取權要求和回應資料: API Proxy

您有多種情況下,可以在傳送要求資料至後端之前修改要求資料 伺服器例如:

  • 移除 Edge 用來驗證要求的安全性資訊。這不是正確資訊 才能正確運作
  • 新增傳送至後端服務的資料,例如追蹤使用者或收集 數據分析
  • 根據要求資料,有條件地處理要求。例如,API Proxy 且有多個目標端點要求使用的 TargetEndpoint 取決於要求 資料。接著,您可以先從要求中刪除這些資料,再傳送至後端服務。

回應中的資料也是如此。處理回應時,API Proxy 可能想要修改資料,然後再傳回要求的應用程式。

存取要求訊息

您可以使用政策來存取及變更要求訊息的部分內容。這些部分包括:

  • 標頭
  • 查詢參數
  • 表單參數
  • 來源 IP 位址
  • HTTP 郵件內文

在正常流程中,要求處理完畢後,Proxy 會傳送轉換後的 傳送至目標的要求

政策可以檢查要求變數,然後依據 這些變數的內容政策藉由設定適當的變數來轉換要求 ,其中對應要求標頭的範例變數。

存取回應訊息

使用套用至回應訊息的變數,政策可存取訊息元件 包含標頭、查詢參數和表單參數、來源 IP 位址 訊息內文等

Proxy 收到回應訊息,然後套用至該訊息一系列政策 回應中評估的條件,可修改或轉換回應。

政策可以檢查回應變數,並根據 這些變數的內容政策可設定適當的變數來轉換回應 ,例如與回應標頭相對應的變數範例。

存取流程變數的常見政策

Edge 定義了幾項可用來處理要求和回應資料的政策。這些 政策包括: