查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
路徑會決定從 ProxyEndpoint 到 TargetEndpoint 的要求路徑。 路徑包含用來存取 API ProxyEndpoint 的 URL,以及後端的網址 由 TargetEndpoint 定義的服務啟動。
觀看這部影片,瞭解路線簡介,當中會說明 ProxyEndpoint 和 TargetEndpoint。
決定 API Proxy 網址 端點
下圖顯示從應用程式傳送至 ProxyEndpoint 的要求,以及 將要求導向至後端服務:
在 Edge 上建立 API Proxy 後,應用程式用來存取 Proxy 的預設網址 格式如下:
http://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path} https://{org-name}-{env-name}.apigee.net/{base-path}/{resource-path}
其中:
- {org-name} 是 您的機構名稱。當您在 Edge 上建立帳戶時,系統就會建立這個名稱。
- {env-name} 是 Edge 環境名稱,根據預設,在雲端建立的所有 Apigee 機構都會 「test」和「prod」。部署 API Proxy 時 您可以選擇將其部署至一個或兩個環境
- {base-path} 和 {base-path} 會在 建立 API Proxy
要求進入 Edge 時,Edge 會剖析網址,將要求導向正確的 ProxyEndpoint。舉例來說,下列網址可用來存取 Edge 上的 API Proxy:
http://myOrg-prod.apigee.net/v1/weather/forecastrss
如果您在上圖中查看 API Proxy 的 ProxyEndpoint 定義,您可以看到 如何由 Edge 剖析這個網址:
- 網址中的網域部分 http://myOrg-prod.apigee.net
連線至 Edge 上的虛擬主機。在上方的 ProxyEndpoint 定義中,API Proxy
會使用 <VirtualHost> 標記,
參照名為 default 的虛擬主機。您可以建立多個
Deployment 規格
虛擬主機會定義要公開 API Proxy 的網域和通訊埠。虛擬主機 也會定義要使用 HTTP 通訊協定存取 API Proxy,還是透過加密 Proxy HTTPS 通訊協定如要進一步瞭解虛擬主機,請參閱「關於虛擬主機 (Beta 版)」一文。 - 網址的第二部分 (/v1/weather) 取決於 <BasePath> 元素 ProxyEndpoint。該環境的 API Proxy 基礎路徑不得重複,以便兩個 API Proxy 的基本路徑不會相同。
- 網址的第三個部分 /forecastrss,是 具有由 <Flows> 標記定義的對應條件式流程的 API Proxy。
影片:觀看這部短片,進一步瞭解 API Proxy 端點。
判斷目標端點的網址
中的 <RouteRule> 標記, ProxyEndpoint 定義會決定 API Proxy 的目標,然後再評估 在 ProxyEndpoint 要求的 PreFlow、條件流程和 PostFlow 中,政策分別為 處理完畢
ProxyEndpoint 可將目標定義為:
- 導向後端服務的直接網址。
- 單一 TargetEndpoint 定義。
- 多個目標端點,API Proxy 會將要求委派給目標 建立端點
- 空值路徑或目標:表示要求未轉送至目標。所有 要求及產生回應的處理都在 Edge 上進行
影片:觀看這部短片,進一步瞭解目標端點。
直接網址
ProxyEndpoint 可直接叫用後端服務,略過任何已命名的 TargetEndpoint 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定例如,下列 <RouteRule> 一律會發出 HTTP 呼叫 http://api.mycompany.com/myAPI:
<RouteRule name="default"> <URL>http://api.mycompany.com/myAPI</URL> </RouteRule>
然而,由於沒有 TargetEndpoint,您只能在定義的流程中新增政策。 。
單一目標
在單一目標定義中,ProxyEndpoint 會參照單一 TargetEndpoint 定義 以名稱取代,如上圖所示:
<RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule>
所有傳送至這個 API Proxy 的要求都會導向至相同的 TargetEndpoint 定義。 <URL> 標記在 TargetEndpoint 會決定後端服務的位置。如上圖所示 網址是 http://weather.yahooapis.com。
條件目標
<RouteRule> 標記則可讓您 您是依據特定條件將要求導向指定目標您可以使用流程變數、查詢 參數、HTTP 標頭、郵件內容或背景資訊,例如時段和語言代碼 以便判斷目標端點舉例來說,您可以納入地理區域 (例如 US) 和 UK然後,您可以根據 區域。
下列轉送規則會評估要求中的 HTTP 標頭。如果 HTTP 標頭 routeTo 包含 TargetEndpoint1,然後是要求 會轉送到名為 TargetEndpoint1 的 TargetEndpoint,如果沒有,系統會將要求轉送 至 TargetEndpoint2,
<RouteRule name="MyRoute"> <Condition>request.header.routeTo = "TargetEndpoint1"</Condition> <TargetEndpoint>TargetEndpoint1</TargetEndpoint> </RouteRule> <RouteRule name="default"> <TargetEndpoint>TargetEndpoint2</TargetEndpoint> </RouteRule>
如果有多個轉送規則,請建立「預設」做為路徑 則沒有條件確保清單最後已定義預設轉送規則 條件式路徑,因為規則是在 ProxyEndpoint 中由上而下評估。
影片:觀看短片,瞭解如何使用以下功能將路徑轉送至目標端點 條件式目標。
空值路線
空值路徑支援要求訊息不需要轉寄到 目標端點當 ProxyEndpoint 執行所有必要的處理程序時,這就能派上用場。 例如使用 JavaScript 呼叫外部服務
以下範例定義空值的路徑:
<RouteRule name="GoNowhere"/>