以 API Proxy 的形式公開 SOAP 服務

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本主題將說明如何為以 SOAP 為基礎的網路服務建立 API Proxy。您可以在 Edge 中建立兩種類型的 SOAP Proxy。一個會為後端 SOAP 服務產生 RESTful 介面,另一個會將 SOAP 訊息「直通」至後端。本主題將說明這兩種技術。

這部影片提供端對端示範,說明如何使用 API Proxy 精靈將 SOAP 服務轉換為 REST 服務。不過,如果您想進一步控管 SOAP 到 REST 的轉換作業,可以使用政策建立 Proxy。詳情請參閱「 教學課程:在 Apigee Edge 中手動建構 SOAP 到 REST API 的 Proxy」。

為 SOAP 服務建立 RESTful API Proxy

本節說明如何在「建立 Proxy」精靈中使用「REST 到 SOAP 到 REST」選項,建立 RESTful SOAP API Proxy。

總覽

「REST 轉換為 SOAP 再轉換為 REST」選項會處理 WSDL,產生 RESTful API Proxy。Edge 會根據 WSDL 判斷服務支援的作業、輸入參數等等。Edge 會「猜測」每個作業要使用的 HTTP 方法。一般來說,Edge 會將作業轉譯為 GET 要求,這類要求的好處是可快取。Edge 也會設定後端目標端點,這可能因 SOAP 作業而異。

針對這類 Proxy,Edge 會自動產生 OpenAPI 規範,您可以用來建立 API 說明文件。

基本步驟

Edge

如要使用 Edge UI 建立 RESTful API Proxy 以連線至 SOAP 服務,請按照下列步驟操作:

  1. 登入 apigee.com/edge
  2. 在左側導覽列中,依序選取「Develop」>「API Proxies」
  3. 按一下「+Proxy」
  4. 按一下「SOAP service」
  5. 在 Proxy 詳細資料頁面中,提供 WSDL 檔案。
    欄位 說明
    提供 WSDL 檔案

    選取 WSDL 來源。

    • 從網址 (URL) 中:輸入或貼上 WSDL 的網址。
    • 從我的電腦:從本機目錄上傳 WSDL 檔案。如果有依附元件,您可以上傳多個檔案。
  6. 按一下「驗證」,驗證 WSDL。
  7. 輸入以下 Proxy 詳細資料:
    欄位 說明
    名稱 顯示的 API 名稱。指定英數字元、連字號 (-) 或底線 (_)。
    基本路徑

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

    注意:API 代理程式基本路徑預設為為 Name 欄位指定的值,並轉換為全小寫。

    在基本路徑後方,是任何額外資源網址。以下是用戶端用來呼叫 API 代理的完整網址結構:

    https://[host]/base_path/conditional_flow_path

    注意:基本路徑必須是唯一的,您無法部署兩個使用相同基本路徑的 API Proxy。如果您編輯已部署的 API Proxy,並將基本路徑設為與其他 API Proxy 的基本路徑相同的值,Edge 會在您儲存時自動取消部署 API Proxy。您必須編輯基礎路徑,讓該路徑不重複,才能重新部署 API Proxy。

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

    在 API Proxy 基礎路徑中使用一或多個 /*/ 萬用字元,讓 API Proxy 能因應未來需求。舉例來說,/team/*/members 的基本路徑可讓用戶端呼叫 https://[host]/team/blue/membershttps://[host]/team/green/members,而您不必建立新的 API Proxy 來支援新的團隊。請注意,系統不支援 /**/

    說明 (選用) API 說明。
  8. 按一下「繼續」
  9. 在精靈的「Common policies」頁面中,設定下列項目:
    • 請參閱「安全性:授權」下的安全性授權規定。請參閱「新增安全性」。
    • 在「安全性:瀏覽器」下方支援跨來源資源共享 (CORS)。請參閱「新增 CORS 支援」。
    • 配額:可保護後端服務免受高流量影響。請參閱「配額」一文。(如果選取了「直通式授權」,則無法使用)。
  10. 在「WSDL 作業」頁面上,選取「REST 到 SOAP 到 REST」API 代理程式類型。

    系統會顯示一份表格,列出 Edge 在 WSDL 檔案中「發現」的作業。您可以選取並設定要納入 API Proxy 的作業。如以下圖所示。

  11. 從下拉式選單中選取「Port Type」,指定要使用的操作集。在 WSDL 中,port 型別元素會定義可對 Web 服務呼叫的作業。
  12. 您可以視需要變更作業的 REST API Path。路徑會用於 API 代理程式網址中的資源名稱。
  13. 您可以視需要變更與作業相關聯的動詞 (HTTP 方法)。
  14. 點選「下一步」。
  15. 在精靈的「虛擬主機」頁面中,選取 API 代理程式在部署時要繫結的虛擬主機。詳情請參閱「關於虛擬主機」。
  16. 點選「下一步」。
  17. 選取部署環境,然後按一下「建立並部署」
    系統會建立新的 API Proxy,並部署至所選環境。
  18. 按一下「編輯 Proxy」,即可顯示 API Proxy 的詳細資料頁面。

Classic Edge (Private Cloud)

如要使用 Edge 傳統版 UI 建立 RESTful API Proxy 至以 SOAP 為基礎的服務,請按照下列步驟操作:

  1. 登入 http://ms-ip:9000,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。
  2. 依序選取頂端導覽列中的「API」>「API 代理程式」
  3. 按一下「+ API Proxy」
  4. 在「Build a Proxy」(建構 Proxy) 精靈中,選取 SOAP 服務。
  5. 點選「下一步」。
  6. 在「詳細資料」頁面中,進行以下選取動作。選取 WSDL 後,請務必按一下「驗證」
    在這個欄位中 執行這項操作
    WSDL

    選取 WSDL 來源。

    • 網址:輸入要使用的 WSDL 網址。
    • 檔案:選擇檔案系統中的 WSDL 檔案。如果有其他依附檔案,您可以全部選取。
    • 網址範例:從可供公開使用的 WSDL 清單中選取。這些檔案可讓您試用 Edge 的 SOAP/API Proxy 功能。
    Proxy 名稱

    這是您要建立的 Proxy 名稱。

    Proxy Base Path

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

    注意:API 代理程式基本路徑預設為為 Name 欄位指定的值,並轉換為全小寫。

    在基本路徑後方,是任何額外資源網址。以下是用戶端用來呼叫 API 代理的完整網址結構:

    https://[host]/base_path/conditional_flow_path

    注意:基礎路徑必須是唯一的,您無法部署兩個使用相同基礎路徑的 API 代理程式。如果您編輯已部署的 API Proxy,並將基本路徑設為與其他 API Proxy 的基本路徑相同的值,Edge 會在您儲存時自動取消部署 API Proxy。您必須編輯基礎路徑,讓該路徑不重複,才能重新部署 API Proxy。

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

    在 API Proxy 基礎路徑中使用一或多個 /*/ 萬用字元,讓 API Proxy 能因應未來需求。舉例來說,/team/*/members 的基本路徑可讓用戶端呼叫 https://[host]/team/blue/membershttps://[host]/team/green/members,而您不必建立新的 API Proxy 來支援新的團隊。請注意,系統不支援 /**/

    說明 簡要說明 Proxy。
  7. 按一下「繼續」
  8. 在 WSDL 頁面中,選取 API 代理程式類型「REST 到 SOAP 到 REST」

    系統會顯示一張表格,列出 Edge 在 WSDL 檔案中「發現」的作業。您可以選取並設定要納入 API Proxy 的作業。如以下圖所示。

    在 WSDL 作業頁面上,API 代理程式類型已設為「REST 到 SOAP 到 REST」,表格則顯示一列包含新增作業的結果。

  9. 從「Port Type」欄中選取要使用的操作組合。在 WSDL 中,port 型別元素會定義可對 Web 服務呼叫的作業。
  10. 視需要變更與作業相關聯的 HTTP 方法。

    注意:Edge 會「盡力推測」決定每個作業要使用的 HTTP 方法。一般來說,建議使用 GET,因為 GET 要求可快取。
  11. 視需要變更作業的 REST API 路徑。路徑會用於 API 代理程式網址中的資源名稱。
  12. 按一下指南的其餘部分,新增安全性、選取虛擬主機和部署環境。
  13. 在「Build」頁面中,按一下「Build and Deploy」。Edge 會根據 WSDL 產生及部署新的 API Proxy。
  14. 前往新 API Proxy 的摘要頁面。請注意,系統已根據 WSDL 檔案中發現的作業建構一組資源。

    在 Proxy 的總覽頁面中,「Resources」清單會詳細說明新的 API、作業和參數。您可以將這項表示法視為 API 的參考說明文件。Edge 會自動為您產生這個 API 模型的檢視畫面。只要展開資源,即可查看其說明和路徑資訊。

關於最終 Proxy

當 Edge 根據 WSDL 產生 API Proxy 時,產生的 Proxy 其實是複雜的流程,其中包含用於轉換資料、擷取及設定變數、操控訊息等的政策。根據 WSDL 產生 Proxy 後,請在 API 管理 UI 的 Develop 檢視畫面中查看產生的流程。您可以查看新增的政策。

舉例來說,在要求端,AssignMessage 政策會用於設定目標網址。在回應端,政策會執行,將回應從 XML 轉換為 JSON,將回應的 SOAP 主體部分擷取至變數,並設定回應訊息。建立 Proxy 時,系統會自動新增這些政策 (以及其他政策)。

OpenAPI 規格:如要查看此 Proxy 自動產生的 OpenAPI 規格,請前往 http(s)://[proxy_domain]/[proxy_base_path]/openapi.json。不過,轉換結果不一定準確,因為 OpenAPI 規格無法呈現 XML 結構定義的所有規則。

建立通道傳遞 Proxy 至 SOAP 服務

本節說明如何在「Create New Proxy」對話方塊中使用「Pass-Through Proxy」選項建立轉送 Proxy。

總覽

透過「直通 Proxy」選項,您可以建立 Proxy,將要求中的 SOAP 訊息傳遞至「未經處理」的後端服務,讓您輕鬆為 SOAP 網路服務建立 Proxy。在幕後,Edge 會自動處理任何轉換和其他流程活動。舉例來說,如果要求是 JSON 格式,Edge 會先將其轉換為有效的 XML SOAP 訊息,並使用正確的命名空間,然後再將其 POST 至服務。同樣地,當服務傳回以 XML 為基礎的 SOAP 回應時,Edge 會先將其轉換回 JSON,再傳回給用戶端。此外,Edge 會設定後端目標端點,這可能因 SOAP 作業而異。

針對這類 Proxy,Edge 會代管 WSDL,並在 Proxy 中建立流程,讓您存取該流程。這個 Edge 代管 WSDL 的地址 http(s)://[proxy_domain]/[proxy_base_path]?wsdl 會成為新服務端點網址,供用戶端透過 Proxy 呼叫 SOAP 服務。

基本步驟

Edge

如要使用 Edge UI 建立 SOAP 服務的直通 Proxy,請按照下列步驟操作:

  1. 登入 apigee.com/edge
  2. 在左側導覽列中,依序選取「Develop」>「API Proxies」
  3. 按一下「+Proxy」
  4. 按一下「SOAP service」
  5. 在 Proxy 詳細資料頁面中,提供 WSDL 詳細資料。
    欄位 說明
    WSDL

    選取 WSDL 來源。

    • 從網址 (URL) 中:輸入或貼上 WSDL 的網址。
    • 從我的電腦:從本機目錄上傳 WSDL 檔案。如果有依附元件,您可以上傳多個檔案。
    名稱

    API Proxy 的名稱。

    基本路徑

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

    注意:如要瞭解 Apigee 針對 API 版本管理提供的建議,請參閱 《Web API Design: The Missing Link》電子書中的「 版本管理」一節。

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

    https://[host]/base_path/conditional_flow_path

    注意:基礎路徑不得重複。如果您日後編輯這個 Proxy,並將其基本路徑設為與其他 API Proxy 相同,則系統會在您儲存時自動取消部署這個 API Proxy。您必須先編輯基礎路徑,才能重新部署。

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

    您可以在 API 代理程式基本路徑中使用一或多個 /*/ 萬用字元,讓代理程式不受時間限制。舉例來說,/team/*/members 的基本路徑可讓用戶端呼叫 https://[host]/team/blue/membershttps://[host]/team/green/members,而您不必建立新的 API Proxy 來支援新的團隊。請注意,系統不支援 /**/。

    注意:除非您明確編輯「Base Path」欄位中的內容,否則 API 代理程式 Base Path 預設為將「Name」欄位指定的值全部轉換為小寫。

    說明 (選用) API 說明。
  6. 按一下「繼續」
  7. 在精靈的「Common policies」頁面中,設定下列項目:
    • 安全性授權規定。請參閱「新增安全性」。
    • 支援跨來源資源共享 (CORS)。請參閱「新增 CORS 支援」。
    • 配額可保護後端服務免受高流量影響。請參閱「配額」一文。(如果選取了「直通式授權」,則無法使用)。
    • 針對已啟用營利功能的機構,強制執行營利限制。請參閱「在 API Proxy 中強制實行營利限制」。
  8. 在 WSDL 頁面上,選取 API 委派程式類型「Pass-Through SOAP」

  9. 從下拉式選單中選取「Port Type」,指定要使用的作業集。在 WSDL 中,port 型別元素會定義可對 Web 服務呼叫的作業。
  10. 點選「下一步」。
  11. 在精靈的「虛擬主機」頁面中,選取 API 代理程式在部署時要繫結的虛擬主機。詳情請參閱「關於虛擬主機」。
  12. 選取部署環境,然後按一下「建立並部署」
    系統會建立新的 API Proxy,並部署至所選環境。
  13. 按一下「編輯 Proxy」,即可顯示 API Proxy 的詳細資料頁面。

Classic Edge (Private Cloud)

如要使用 Edge 傳統版 UI 建立通道代理,以便存取以 SOAP 為基礎的服務,請按照下列步驟操作:

  1. 登入 http://ms-ip:9000,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。
  2. 依序選取頂端導覽列中的「API」>「API 代理程式」
  3. 按一下「+ API Proxy」
  4. 在「Build a Proxy」(建構 Proxy) 精靈中,選取 SOAP 服務。
  5. 點選「下一步」。
  6. 在「詳細資料」頁面中,進行以下選取動作。選取 WSDL 後,請務必按一下「驗證」
    在這個欄位中 執行這項操作
    WSDL

    選取 WSDL 來源。

    • 網址:輸入要使用的 WSDL 網址。
    • 檔案:選擇檔案系統中的 WSDL 檔案。如果有其他依附檔案,您可以全部選取。
    • 網址範例:從可供公開使用的 WSDL 清單中選取。這些檔案可讓您試用 Edge 的 SOAP/API Proxy 功能。
    Proxy 名稱

    這是您要建立的 Proxy 名稱。

    Proxy Base Path Proxy Base Path 是 URI 片段,可唯一識別此 API Proxy 公開的 API。API 服務會使用 Base Path URI 比對並將傳入的要求訊息轉送至適當的 API Proxy。(Base Path 會附加至 API 的網域,而網域會根據您的機構名稱和部署 API Proxy 的環境自動產生)。建議您在專案名稱中加入版本號碼,例如 /v1/delayedstockquote。這會決定消費者應用程式如何叫用您的 API。

    注意:除非您明確編輯 Proxy Base Path 欄位的內容,否則 Proxy Base Path 預設為將 Proxy Name 指定的值轉換為全小寫。

    說明 簡要說明 Proxy。

  7. 點選「下一步」。
  8. 在 WSDL 頁面中,選取 API 代理程式類型「Pass-Through SOAP」

    注意:系統會顯示一張表格,列出每個 WSDL 作業及其對應的 SOAP 酬載。這是「傳遞」至後端 SOAP 服務的酬載。

    在 WSDL 頁面中,API 代理程式類型設為「Pass-Through SOAP」,而 GetQuote 等作業清單則按埠類型排序。
  9. 從「Port Type」欄中選取要使用的操作組合。在 WSDL 中,port 型別元素會定義可對 Web 服務呼叫的作業。
  10. 按一下指南的其餘部分,新增安全性、選取虛擬主機和部署環境。
  11. 在「Build」頁面中,按一下「Build and Deploy」。Edge 會根據 WSDL 產生及部署新的 API Proxy。

關於最終 Proxy

Edge 產生轉送 Proxy 時,產生的 Proxy 其實是複雜的流程,其中包含用於轉換資料、擷取及設定變數、操控訊息等的政策。產生直通 Proxy 後,請在 API 管理 UI 的 Develop 檢視畫面中查看產生的流程。您可以查看新增的政策。

例如,下圖顯示了傳送代理伺服器的目標端點預先流程部分。在要求端,系統會使用 AssignMessage 政策設定目標網址。在回應端,政策會執行,將回應從 XML 轉換為 JSON,將回應的 SOAP 主體部分擷取至變數,並設定回應訊息。您建立 Proxy 時,系統會自動新增這些政策 (以及其他政策)。

在「開發」檢視畫面的「流程」面板中,箭頭會顯示從要求到回應的流程,圖示則代表政策。

Edge 代管的 WSDL:如要查看為這類 Proxy 產生的 Edge 代管 WSDL,請前往 http(s)://[proxy_domain]/[proxy_base_path]?wsdl

進階 SOAP 至 REST Proxy 開發

前幾節說明瞭如何使用 Edge 中的 API Proxy 精靈建立 SOAP 到 REST API Proxy。不過,如果您想進一步控管 SOAP 到 REST 的轉換作業,可以略過精靈提供的自動化功能,並透過手動新增及設定政策來建構 Proxy,以便取得所需的行為。詳情請參閱 教學課程:在 Apigee Edge 中手動建構 SOAP 到 REST API Proxy