建構簡單的 API Proxy

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。
info

Apigee Edge 可讓您將後端服務快速公開為 API,做法是建立 API Proxy,為要公開的後端服務提供門面元件。您只需提供後端服務的網路位址,以及 Edge 用來建立 API Proxy 的一些資訊,即可向開發人員公開 API Proxy。

API Proxy 會將後端服務實作與開發人員使用的 API 分開。這樣一來,未來後端服務變更就不會影響到開發人員。更新後端服務時,開發人員能與這些變更完全隔絕,繼續呼叫 API 而不受任何干擾。

觀看這部影片,概略瞭解建立 API Proxy 的流程。

使用 UI 建立 API Proxy

建立 API Proxy 最簡單的方法是使用「建立 Proxy」精靈。

邊緣

如要使用 Edge UI 存取「建立 Proxy」精靈,請按照下列步驟操作:

  1. 登入 apigee.com/edge。
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」。
  3. 按一下「+Proxy」。

「建立 Proxy」精靈會顯示,並引導您完成產生 API Proxy 和新增最少功能的步驟。

「建立 Proxy」精靈的第一頁,提示您選取反向 Proxy、SOAP 服務、沒有目標或 Proxy 組合,以自訂精靈流程。

新版 Edge 使用者介面 (私有雲)

如要使用 New Edge UI 存取「建立 Proxy」精靈,請按照下列步驟操作:

  1. 在 http://host:3001/edge 登入 New Edge UI,其中 host 是執行 New Edge UI 的主機 IP 位址或 DNS 名稱。
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」。
  3. 按一下「+Proxy」。

「建立 Proxy」精靈會顯示,並引導您完成產生 API Proxy 和新增最少功能的步驟。

「建立 Proxy」精靈的第一頁,提示您選取反向 Proxy、SOAP 服務、沒有目標或 Proxy 組合,以自訂精靈流程。

精靈的第一頁可讓您從下列來源建立 API Proxy:

類型 說明
反向 Proxy (最常見)

API Proxy 會將連入要求轉送至現有的 HTTP 後端服務。可以是 JSON 或 XML API。請參閱本節稍後的「為 HTTP 服務建立反向 Proxy」。

點選「使用 OpenAPI 規格」,即可從有效的 OpenAPI 規格產生 Proxy。如要進一步瞭解這個選項,請參閱本節稍後的「使用 OpenAPI 規格產生 Proxy」。

SOAP 服務 從 WSDL 檔案產生的 API Proxy。請參閱「將 SOAP 型網頁服務公開為 API Proxy」。
沒有指定目標

沒有 API 後端的 API Proxy (「沒有目標」)。與先前所述的為 HTTP 服務建立反向 Proxy類似,但定義 API Proxy 詳細資料時,您不會指定現有 API。

點選「使用 OpenAPI 規格」,即可從有效的 OpenAPI 規格產生 Proxy。如要進一步瞭解這個選項,請參閱本節稍後的「使用 OpenAPI 規格產生 Proxy」。

代管目標

API Proxy,會將要求轉送至部署在 Hosted Targets 環境中的 Node.js 應用程式。 請參閱「代管目標總覽」。

上傳 Proxy 套件 現有的 API Proxy 套件 (例如 GitHub 上的範例 API Proxy)。請參閱「從 API Proxy 套裝組合匯入 API Proxy」。

以下各節說明如何使用各個來源建立 API Proxy。

為 HTTP 服務建立反向 Proxy

Edge 會根據下列兩項資訊生成反向 Proxy:

  • 後端服務的網址
  • URI 路徑,可專屬識別 API Proxy 將向消費者應用程式公開的 API

後端服務網址通常代表貴機構擁有的服務啟用應用程式。也可以指向公開可用的 API。API 或服務可由您控管 (例如內部 HR 應用程式或 Cloud 中的 Rails 應用程式),也可以是第三方 API 或服務 (例如 Twitter 或 Instagram)。

邊緣

  1. 如本節稍早的「使用 UI 建立 API Proxy」所述,存取「建立 Proxy」精靈。
  2. 在「建立 Proxy」精靈中,按一下「反向 Proxy (最常見)」。如要從現有的有效 OpenAPI 規格產生 Proxy,請按一下「使用 OpenAPI 規格」。如需這個選項的詳細資料,請參閱下方的「使用 OpenAPI 規格產生 Proxy」。
  3. 在精靈的「詳細資料」頁面中,輸入下列資訊。
    欄位 說明
    名稱 API 的顯示名稱,指定英數字元、破折號 (-) 或底線 (_)。
    基本路徑

    API Proxy 的 http(s)://[host] 位址後顯示的 URI 片段。Edge 會使用基本路徑 URI 比對及轉送傳入的要求訊息,將訊息傳送至適當的 API Proxy。

    NOTE:API Proxy 的基本路徑預設為 Name 欄位指定的值,並會轉換為全小寫。

    基本路徑後方是任何其他資源網址。以下是客戶用來呼叫 API 代理的完整網址結構:

    https://[host]/base_path/conditional_flow_path

    NOTE:基本路徑不得重複,您無法部署基本路徑相同的兩個 API Proxy。如果您編輯已部署的 API Proxy,並將基準路徑設為與另一個 API Proxy 的基準路徑相同的值,Edge 會在您儲存時自動取消部署該 API Proxy。您必須先編輯基本路徑,確保路徑獨一無二,才能重新部署 API Proxy。

    在基本路徑中使用萬用字元

    在 API Proxy 的基本路徑中使用一或多個 /*/ 萬用字元,確保 API Proxy 能因應未來變化。舉例來說,如果基本路徑為 /team/*/members,客戶就能呼叫 https://[host]/team/blue/members 和 https://[host]/team/green/members,您不必建立新的 API Proxy 來支援新團隊。請注意,系統不支援 /**/。

    說明 (選用) API 說明。
    目標 (現有 API) 這個 API Proxy 叫用的後端服務網址。
  4. 在精靈的「Common policies」(一般政策) 頁面中,設定下列項目:
    • 「安全性:授權」下的安全授權規定。請參閱本節稍後的「新增安全性」。
    • 支援「安全性:瀏覽器」下的跨源資源共享 (CORS)。請參閱本節稍後的「新增 CORS 支援」。
    • 配額,可保護後端服務免於高流量影響,位於「配額」Quota下方。請參閱「配額」。(如果選取「直通授權」,則無法使用)。
    • 在「營利」下方,為啟用營利功能的機構強制執行營利限制。請參閱「對 API Proxy 實施營利限制」。
  5. 在精靈的「虛擬主機」頁面,選取 API Proxy 部署時要繫結的虛擬主機。詳情請參閱「關於虛擬主機」。
  6. 在「摘要」頁面中,視需要選取部署環境,然後按一下「建立並部署」。

    新的 API Proxy 會在所選環境中建立並部署。

  7. 按一下「編輯 Proxy」,即可顯示 API Proxy 的詳細資料頁面。

新版 Edge 使用者介面 (私有雲)

  1. 如本節稍早的「使用 UI 建立 API Proxy」所述,存取「建立 Proxy」精靈。
  2. 在「建立 Proxy」精靈中,按一下「反向 Proxy (最常見)」。如要從現有的有效 OpenAPI 規格產生 Proxy,請按一下「使用 OpenAPI 規格」。如需這個選項的詳細資料,請參閱下方的「使用 OpenAPI 規格產生 Proxy」。
  3. 在精靈的「詳細資料」頁面中,輸入下列資訊。
    欄位 說明
    名稱 API 的顯示名稱,指定英數字元、破折號 (-) 或底線 (_)。
    基本路徑

    API Proxy 的 http(s)://[host] 位址後顯示的 URI 片段。Edge 會使用基本路徑 URI 比對及轉送傳入的要求訊息,將訊息傳送至適當的 API Proxy。

    NOTE:API Proxy 的基本路徑預設為 Name 欄位指定的值,並會轉換為全小寫。

    基本路徑後方是任何其他資源網址。以下是客戶用來呼叫 API 代理的完整網址結構:

    https://[host]/base_path/conditional_flow_path

    NOTE:基本路徑不得重複,您無法部署基本路徑相同的兩個 API Proxy。如果您編輯已部署的 API Proxy,並將基準路徑設為與另一個 API Proxy 的基準路徑相同的值,Edge 會在您儲存時自動取消部署該 API Proxy。您必須先編輯基本路徑,確保路徑獨一無二,才能重新部署 API Proxy。

    在基本路徑中使用萬用字元

    在 API Proxy 的基本路徑中使用一或多個 /*/ 萬用字元,確保 API Proxy 能因應未來變化。舉例來說,如果基本路徑為 /team/*/members,客戶就能呼叫 https://[host]/team/blue/members 和 https://[host]/team/green/members,您不必建立新的 API Proxy 來支援新團隊。請注意,系統不支援 /**/。

    說明 (選用) API 說明。
    目標 (現有 API) 這個 API Proxy 叫用的後端服務網址。
  4. 在精靈的「Common policies」(一般政策) 頁面中,設定下列項目:
    • 「安全性:授權」下的安全授權規定。請參閱本節稍後的「新增安全性」。
    • 支援「安全性:瀏覽器」下的跨源資源共享 (CORS)。請參閱本節稍後的「新增 CORS 支援」。
    • 配額,可保護後端服務免於高流量影響,位於「配額」Quota下方。請參閱「配額」。(如果選取「直通授權」,則無法使用)。
    • 在「營利」下方,為啟用營利功能的機構強制執行營利限制。請參閱「對 API Proxy 實施營利限制」。
  5. 在精靈的「虛擬主機」頁面,選取 API Proxy 部署時要繫結的虛擬主機。詳情請參閱「關於虛擬主機」。
  6. 在「摘要」頁面中,視需要選取部署環境,然後按一下「建立並部署」。

    系統會在所選環境中建立並部署新的 API Proxy。

  7. 按一下「編輯 Proxy」,即可顯示 API Proxy 的詳細資料頁面。

從 API Proxy 套件匯入 API Proxy

您通常會將 API Proxy 定義為 XML 檔案的集合,以及任何其他支援檔案。將 API Proxy 定義為 Edge 外部的一組檔案,即可在來源控制系統中維護這些檔案,然後匯入 Edge 進行測試及部署。

觀看這部影片,瞭解如何從 API Proxy 套裝組合建立及匯入 API Proxy。

邊緣

如要從 API Proxy 套裝組合匯入 API Proxy,請按照下列步驟操作:

  1. 如本節稍早的「使用 UI 建立 API Proxy」所述,存取「建立 Proxy」精靈。
  2. 按一下「上傳 Proxy 套件」。
  3. 在 Proxy 精靈的「上傳 Proxy 組合」頁面中,輸入下列資訊。

    欄位 說明
    ZIP 套件 內含 API Proxy 設定的 ZIP 檔案。拖曳或點選即可前往檔案。
    名稱 API 的顯示名稱,預設為 ZIP 檔案的名稱 (不含副檔名)。
  4. 點選 [下一步]。
  5. 在「摘要」頁面上,視需要選取部署環境,然後按一下「建立並部署」
    系統會顯示確認訊息,指出已成功建立新的 API Proxy。
  6. 按一下「編輯 Proxy」,即可顯示 API Proxy 的詳細資料頁面。

新版 Edge 使用者介面 (私有雲)

如要從 API Proxy 組合匯入 API Proxy,請按照下列步驟操作:

  1. 如本節稍早的「使用 UI 建立 API Proxy」所述,存取「建立 Proxy」精靈。
  2. 按一下「上傳 Proxy 套件」。
  3. 在 Proxy 精靈的「上傳 Proxy 組合」頁面中,輸入下列資訊。

    欄位 說明
    ZIP 套件 內含 API Proxy 設定的 ZIP 檔案。拖曳或點選即可前往檔案。
    名稱 API 的顯示名稱,預設為 ZIP 檔案的名稱 (不含副檔名)。
  4. 點選 [下一步]。
  5. 在「摘要」頁面中,視需要選取部署環境,然後按一下「建立並部署」。
    系統會顯示確認訊息,表示已成功建立新的 API Proxy。
  6. 按一下「編輯 Proxy」,即可顯示 API Proxy 的詳細資料頁面。

將以 SOAP 為基礎的網路服務公開為 API Proxy

在「建立 Proxy」精靈中,按一下「SOAP 服務」,然後按照精靈指示,為 SOAP 服務建立直通或 REST 型 Proxy。詳情請參閱「將 SOAP 服務公開為 API Proxy」。

新增安全防護

在「建立 Proxy」精靈的「Common policies」頁面,選取要新增的安全授權類型。下表列出可用的選項:

安全授權 說明
API 金鑰 在您定義的 API Proxy 中新增簡單的 API 金鑰驗證。API 平台會隨即在 API Proxy 中新增 VerifyAPIKey 政策和 AssignMessage 政策。VerifyAPIKey 政策會驗證要求應用程式提供的 API 金鑰。AssignMessage 政策會從轉送至後端伺服器的要求中,移除 API 呼叫中以查詢參數形式提供的 API 金鑰。
OAuth 2.0 為 API Proxy 新增以 OAuth 2.0 為基礎的驗證機制。Apigee Edge 會自動將兩項政策新增至 API Proxy:一項政策用於驗證存取權杖,另一項政策則用於從訊息中移除存取權杖,再將訊息轉送至後端服務。如要瞭解如何取得存取權杖,請參閱 OAuth。
直接放行 (不需要授權) 不需要授權。要求會傳遞至後端,Apigee Edge 不會進行任何安全性檢查。

新增對 CORS 的支援

CORS (跨源資源共享) 是一種標準機制,可讓網頁瀏覽器直接向其他網域提出要求。CORS 標準定義了一組 HTTP 標頭,網路瀏覽器和伺服器會使用這些標頭實作跨網域通訊。

如要為 API 新增 CORS 支援,請在「Create Proxy」精靈的「Common policies」頁面選取「Add CORS headers」。

如要進一步瞭解 CORS 支援,包括在 Proxy 中新增 CORS 預檢支援,請參閱「在 API Proxy 中新增 CORS 支援」。

使用 OpenAPI 規格產生 Proxy

本節將說明「使用 OpenAPI」選項,這個選項可從 OpenAPI 規格產生下列類型的 API Proxy:反向、Node.js 或無目標。

什麼是 OpenAPI 規格?

Open API Initiative 標誌「開放式 API 計畫 (OAI) 的重點是根據 Swagger 規格,建立、發展及推廣與供應商無關的 API 說明格式。」如要進一步瞭解 Open API Initiative,請參閱 https://openapis.org。

OpenAPI 規格會使用標準格式說明 RESTful API。 OpenAPI 規格以 JSON 或 YAML 格式撰寫,可供機器讀取,但人類也能輕鬆閱讀及理解。規格說明瞭 API 的元素,例如基本路徑、路徑和動詞、標頭、查詢參數、作業、內容類型、回應說明等。此外,OpenAPI 規格通常用於產生 API 說明文件。

以下是 OpenAPI 規格的片段,說明 Apigee 的模擬目標服務 http://mocktarget.apigee.net。詳情請參閱 https://github.com/apigee/api-platform-samples/tree/master/default-proxies/helloworld/openapi。

openapi: 3.0.0
info:
  description: OpenAPI Specification for the Apigee mock target service endpoint.
  version: 1.0.0
  title: Mock Target API
paths:
  /:
    get:
      summary: View personalized greeting
      operationId: View a personalized greeting
      description: View a personalized greeting for the specified or guest user.
      parameters:
        - name: user
          in: query
          description: Your user name.
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Success
  /help:
    get:
      summary: Get help
      operationId: Get help
      description: View help information about available resources in HTML format.
      responses:
        "200":
          description: Success
...

透過「建立 Proxy」精靈,您可以匯入 OpenAPI 規格,並用來產生 API Proxy。產生 Proxy 後,您可以使用 Edge UI 進一步開發,例如新增政策、實作自訂程式碼等,就像任何 Edge Proxy 一樣。

使用 OpenAPI 規格建立 API Proxy

根據 OpenAPI 規格建立 API Proxy。 只要按幾下滑鼠,系統就會自動產生 API Proxy,其中包含路徑、參數、條件流程和目標端點。接著,您可以新增 OAuth 安全性、頻率限制和快取等功能。

在「建立 Proxy」精靈中,按一下「使用 OpenAPI 規格」,然後按照精靈指示,從 OpenAPI 規格建立反向或無目標 Proxy。詳情請參閱「從 OpenAPI 規格建立 API Proxy」。

觀看這部影片,瞭解如何從 OpenAPI 規格建立 API Proxy。

使用 OpenAPI 規格更新 API Proxy 中的流程

從 OpenAPI 規格建立 API Proxy 後,如果修改規格來新增其他資源路徑,您可以使用規格將相關聯的條件式流程新增至 API Proxy。

如要使用 OpenAPI 規格更新 API Proxy 中的流程,請按照下列步驟操作:

  1. 將新的資源路徑新增至 OpenAPI 規格。請參閱「編輯現有 OpenAPI 規格」。
  2. 在 UI 中開啟 API Proxy,然後點按「Develop」分頁標籤。
  3. 在「Navigator」中,點選要更新的 Proxy 端點旁的「+」。
    「New Conditional Flow」(新增條件式流程) 對話方塊隨即開啟。
  4. 如果尚未選取「From OpenAPI」,請按一下這個選項。
    如果 OpenAPI 規格中有資源,但 API Proxy 中沒有對應的條件流程,這些資源會列在對話方塊中,如下圖所示。目前 API Proxy 中未以流程形式呈現的資源。這個範例包含 /loveapis、/ip、/json 和 /xml。
  5. 選取要新增條件式流程的每個資源。
  6. 按一下 [新增]。

條件流程會新增至 API Proxy。

建立 API Proxy 的新修訂版本

按照下文說明,建立 API Proxy 的新修訂版本。

邊緣

如要使用 Edge UI 建立 API Proxy 的新修訂版本,請按照下列步驟操作:

  1. 登入 apigee.com/edge。
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」。
  3. 在清單中,按一下要複製的 API Proxy。
  4. 依序選取「Project」>「Save as New Revision」。

新版 Edge 使用者介面 (私有雲)

如要使用 New Edge UI 建立 API Proxy 的新修訂版本,請按照下列步驟操作:

  1. 在 http://host:3001/edge 登入 New Edge UI,其中 host 是執行 New Edge UI 的主機 IP 位址或 DNS 名稱。
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」。
  3. 在清單中,按一下要複製的 API Proxy。
  4. 依序選取「Project」>「Save as New Revision」。

複製 API Proxy

按照下列說明,將現有 API Proxy 複製到新的 API Proxy。

邊緣

如要使用 Edge UI 複製 API Proxy,請按照下列步驟操作:

  1. 登入 apigee.com/edge。
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」。
  3. 在清單中,按一下要複製的 API Proxy。
  4. 依序選取「專案」>「另存為新的 API Proxy」。
  5. 在「另存為新的 Proxy」對話方塊中,輸入新 API Proxy 的名稱。
  6. 按一下 [新增]。

新版 Edge 使用者介面 (私有雲)

如要使用 New Edge UI 複製 API Proxy,請按照下列步驟操作:

  1. 在 http://host:3001/edge 登入 New Edge UI,其中 host 是執行 New Edge UI 的主機 IP 位址或 DNS 名稱。
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」。
  3. 在清單中,按一下要複製的 API Proxy。
  4. 依序選取「專案」>「另存為新的 API Proxy」。
  5. 在「另存為新的 Proxy」對話方塊中,輸入新 API Proxy 的名稱。
  6. 按一下 [新增]。

備份 API Proxy

您可以將現有 API Proxy 備份為 API Proxy 套件中的一組 XML 檔案。匯出至套件後,您可以將 API Proxy 匯入新的 Proxy,如本節稍早的「從 API Proxy 套件匯入 API Proxy」所述。詳情請參閱「下載 API Proxy」。

使用 API 建立 API Proxy

如要使用 API 建立 API Proxy,請參閱 API Proxy API。