瞭解路徑

查看 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 剖析這個網址:

  1. 網址中的網域部分 http://myOrg-prod.apigee.net 連線至 Edge 上的虛擬主機。在上方的 ProxyEndpoint 定義中,API Proxy 會使用 <VirtualHost> 標記, 參照名為 default 的虛擬主機。您可以建立多個 Deployment 規格

    虛擬主機會定義要公開 API Proxy 的網域和通訊埠。虛擬主機 也會定義要使用 HTTP 通訊協定存取 API Proxy,還是透過加密 Proxy HTTPS 通訊協定如要進一步瞭解虛擬主機,請參閱「關於虛擬主機 (Beta 版)」一文。
  2. 網址的第二部分 (/v1/weather) 取決於 <BasePath> 元素 ProxyEndpoint。該環境的 API Proxy 基礎路徑不得重複,以便兩個 API Proxy 的基本路徑不會相同。
  3. 網址的第三個部分 /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 定義。 &lt;URL&gt; 標記在 TargetEndpoint 會決定後端服務的位置。如上圖所示 網址是 http://weather.yahooapis.com

條件目標

&lt;RouteRule&gt; 標記則可讓您 您是依據特定條件將要求導向指定目標您可以使用流程變數、查詢 參數、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"/>

瞭解詳情