查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
向 API Proxy 提出要求時,您可以傳送下列任何或所有資訊: 視 API Proxy 的設定方式而定:
- 要求標頭
- 查詢參數
- 表單資料
- XML 或 JSON 酬載
- 資源 URI
根據預設,要求中的所有資料都會從 ProxyEndpoint 傳送到 TargetEndpoint,因此,當 TargetEndpoint 向後端伺服器發出要求時, 會將原始要求中的資訊傳遞至後端服務。
對於 Edge 從後端服務收到的回應,同樣也是如此。根據預設 系統會將回應中所接收的資料直接傳遞至產生事件的應用程式。 請求。
如何將要求資料傳送至後端 服務?
下圖為 API 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.count
和
request.headers.names
。表單資料會以流程變數表示,例如
《request.formparam.count
》和《request.formparam.names
》。
回應資料如何傳回?
根據預設,Edge 從後端服務收到的所有資料都會傳遞 未套用至發出要求的應用程式。如上所述要求 可透過 Edge 上的流程變數存取回應中傳回的 回應。如需更多資訊 請參閱流程變數參考資料。
以下位置的存取權要求和回應資料: API Proxy
您有多種情況下,可以在傳送要求資料至後端之前修改要求資料 伺服器例如:
- 移除 Edge 用來驗證要求的安全性資訊。這不是正確資訊 才能正確運作
- 新增傳送至後端服務的資料,例如追蹤使用者或收集 數據分析
- 根據要求資料,有條件地處理要求。例如,API Proxy 且有多個目標端點要求使用的 TargetEndpoint 取決於要求 資料。接著,您可以先從要求中刪除這些資料,再傳送至後端服務。
回應中的資料也是如此。處理回應時,API Proxy 可能想要修改資料,然後再傳回要求的應用程式。
存取要求訊息
您可以使用政策來存取及變更要求訊息的部分內容。這些部分包括:
- 標頭
- 查詢參數
- 表單參數
- 來源 IP 位址
- HTTP 郵件內文
在正常流程中,要求處理完畢後,Proxy 會傳送轉換後的 傳送至目標的要求
政策可以檢查要求變數,然後依據 這些變數的內容政策藉由設定適當的變數來轉換要求 ,其中對應要求標頭的範例變數。
存取回應訊息
使用套用至回應訊息的變數,政策可存取訊息元件 包含標頭、查詢參數和表單參數、來源 IP 位址 訊息內文等
Proxy 收到回應訊息,然後套用至該訊息一系列政策 回應中評估的條件,可修改或轉換回應。
政策可以檢查回應變數,並根據 這些變數的內容政策可設定適當的變數來轉換回應 ,例如與回應標頭相對應的變數範例。
存取流程變數的常見政策
Edge 定義了幾項可用來處理要求和回應資料的政策。這些 政策包括:
- AssignMessage 政策:在 API Proxy 期間建立或修改 HTTP 要求或回應訊息 流程並建立並填入新的流程變數。
- ExtractVariables 政策:擷取訊息內容,包括標頭、URI 路徑、酬載和 查詢參數,以便在條件陳述式中使用。然後政策會將文字模式套用到 訊息內容,且找到相符項目時,系統會設定指定的變數。
- JSONtoXML 政策和 XMLtoJSON 政策: 將訊息從 JavaScript Object Notation (JSON) 轉換為可延伸標記語言 (XML) 格式,反之亦然。
- Java 呼叫政策、JavaScript 政策、PythonScript 政策。 RegularExpressionProtection 政策:這些政策可讓你編寫存取流程變數的指令碼 內含要求和回應資料