Proxy 代理服務

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

課程內容

在本教學課程中,您將學習如何:

  • 從 WSDL 檔案產生 Edge API Proxy。
  • 瞭解 RESTful SOAP Proxy 類型與直通 SOAP Proxy 之間的差異。

在本教學課程中,您將瞭解如何將 Edge API Proxy 放在 SOAP 型網路服務的前端。

本教學課程說明如何在 SOAP 服務前方產生新的 RESTful API。雖然本文未詳細說明,但您也可以產生直通 Proxy,接受 SOAP 酬載並傳遞至後端服務。

軟硬體需求

建立 Proxy

您將讓 Edge 產生 Proxy,做為 SOAP 服務的門面。SOAP API Proxy 分為兩種類型:

  • REST-SOAP-REST Proxy 類型會產生新的 RESTful API,並透過轉譯層轉換為 SOAP。用戶端會像呼叫其他 RESTful 服務一樣呼叫這項服務,並傳遞後端服務所需的查詢參數。Edge 會將此內容轉換為服務預期的 SOAP 酬載。
  • 直通 Proxy Proxy 類型可讓用戶端直接傳入 SOAP 酬載。 這樣一來,SOAP 服務呼叫就能享有 Edge 管理功能。

邊緣

如要使用 Edge 使用者介面透過 Proxy 傳送 SOAP 服務,請按照下列步驟操作:

  1. 登入 apigee.com/edge
  2. 在左側導覽列中,依序選取「開發」>「API Proxy」
  3. 按一下「+ Proxy」
  4. 按一下「SOAP 服務」
  5. 在「Proxy 詳細資料頁面」中輸入下列資訊:

    欄位 說明
    WSDL 來源

    選取「網址」

    複製下列 WSDL 網址,並貼到「Enter URL」(輸入網址) 欄位:

    https://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl

    按一下「驗證」

    Apigee Edge 會取得 WSDL 檔案並讀取,以找出 SOAP 服務支援的作業清單。

    名稱

    維持原狀:delayedstockquote

    這是您要建立的 API Proxy 名稱。

    基本路徑 維持原狀:/delayedstockquote
    說明 (選用) 新增說明,例如:Stock quote WSDL API Proxy
  6. 點選 [下一步]。
  7. 在「Common policies」(通用政策) 頁面的「Security: Authorization」(安全性:授權) 下方,選取「Pass through (no authorization)」(直接傳遞 (不授權))
  8. 點選 [下一步]。
  9. 在「WSDL operations」頁面中,選取「REST to SOAP to REST」

    選取 Proxy 類型後,Edge 會顯示要產生 REST API 路徑的作業清單。您可以透過這份清單,從 WSDL 中找到的作業中進行選取 (如果您要尋找特定作業集)。請注意,表格也會顯示 REST 用戶端可用來呼叫後端 SOAP 服務的資源。

    網頁上的其他選項則保留原樣。

  10. 點選 [下一步]。
  11. 按一下「下一步」,接受虛擬主機預設值。
  12. 在「摘要」頁面的「選用部署」下方,依序點選「測試」和「建立並部署」

    Edge 會產生 RESTful API Proxy,並部署至 test 環境。從 WSDL 中,判斷服務支援的作業、輸入參數等。Edge 會建議每項作業要使用的 HTTP 方法。通常 Edge 會將作業轉換為 GET 要求,這類要求可快取,因此具有優勢。Edge 也會設定後端目標端點,這可能因 SOAP 作業而異。

    除非您要自訂新的 API Proxy (本教學課程不會這麼做),否則就這樣就完成了。您可以繼續測試新的 API Proxy。

Classic Edge (Private Cloud)

如要使用傳統 Edge UI 透過 Proxy 傳送 SOAP 服務,請按照下列步驟操作:

  1. 登入 http://ms-ip:9000,其中 ms-ip 是管理伺服器節點的 IP 位址或 DNS 名稱。
  2. 在頂端導覽列中選取「API」>「API Proxy」
  3. 按一下「+ API Proxy」
  4. 按一下「SOAP 服務」
  5. 在「Proxy 詳細資料頁面」中輸入下列資訊:

    欄位 說明
    WSDL

    選取「範例網址」

    然後選取:
    ...delayedstockquote.asmx?WSDL

    按一下「驗證」

    Apigee Edge 會取得 WSDL 檔案並讀取,找出 SOAP 服務支援的作業清單。

    Proxy 名稱

    輸入:delayedstockquote

    這是您要建立的 Proxy 名稱。

    Proxy 底層路徑說明 保持原狀。
  6. 點選 [下一步]。
  7. 在 WSDL 頁面中,選取下列項目:
    在這個欄位中 請按照下列步驟操作:
    API Proxy 類型

    選取「REST to SOAP to REST」(REST 至 SOAP 至 REST)

    選取 Proxy 類型後,Edge 會顯示要產生 REST API 路徑的作業清單,如下所示。您可以從 WSDL 中找到的作業中選取 (如果您要尋找特定作業集)。請注意,表格也會顯示 REST 用戶端可用來呼叫後端 SOAP 服務的資源。

    目前請保留選取的第一組作業。

    Port Type: DelayedStockQuoteSoap 選取所有三個 WSDL 作業。其他設定保留預設值。

  8. 點選 [下一步]。
  9. 在「安全性」頁面中,選取「Pass through (none)」
  10. 點選 [下一步]。
  11. 接受虛擬主機預設值,然後按一下「下一步」
  12. 在「Build」頁面中接受預設值,然後按一下「Build and Deploy」,讓 Edge 開始產生 Proxy。

    Edge 會產生 RESTful API Proxy。從 WSDL 中,判斷服務支援的作業、輸入參數等。Edge 會建議每項作業要使用的 HTTP 方法。通常 Edge 會將作業轉換為 GET 要求,這類要求可快取,因此具有優勢。Edge 也會設定後端目標端點,這可能因 SOAP 作業而異。

    除非您要自訂新 Proxy (本教學課程不會這麼做),否則就這樣就完成了。接著即可測試新 Proxy。

測試 Proxy

如要試用您建立的 Proxy,請開啟命令提示字元並使用 cURL。輸入下列指令,其中:

  • ORG 是您建立 Proxy 的 Edge 機構名稱。
  • ENV 是 Proxy 部署的環境。
  • DOMAIN 對應您使用的 Edge 執行個體。
curl "https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

舉例來說,如果貴機構是 docfood,環境是 test,且您使用 Edge 企業雲端,則會執行類似下列的指令:

curl "https://docfood-test.apigee.net/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

如果為 StockSymbol 查詢參數輸入 GOOG,應該會取得 Alphabet Inc. C 類股的目前價格。例如:

{  
   "GetQuoteResponse":{  
      "GetQuoteResult":{  
         "StockSymbol":"GOOG",
         "LastTradeAmount":819.55,
         "LastTradeDateTime":"2017-02-13T14:33:00",
         "StockChange":5.88,
         "OpenAmount":816.0,
         "DayHigh":820.96,
         "DayLow":815.49,
         "StockVolume":785064,
         "PrevCls":813.67,
         "ChangePercent":"+0.72%",
         "FiftyTwoWeekRange":"663.28 - 841.95",
         "EarnPerShare":27.88,
         "PE":29.4,
         "CompanyName":"Alphabet Inc.",
         "QuoteError":false
      }
   }
}

取得系統自動產生的 OpenAPI 規格

使用「REST to SOAP to REST」代理 SOAP 服務時,Edge 會自動產生 OpenAPI 規範。您可以使用 OpenAPI 規格產生 API 的 API 說明文件。

如要取得 OpenAPI 規格,只要前往這個網址即可:

curl https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/openapi.json

加分題:如何找出要使用的資源、動詞和查詢參數?

在測試 API 呼叫中,您在 cURL 呼叫中使用了特定資源和查詢參數,但要如何自行找出這類資訊呢?

資源和動詞

在建立 Proxy 時,您已在 API Proxy 精靈中看到 SOAP 作業如何對應至 API 動詞和資源。但如果您沒有記下這些資訊,可以按照下列步驟在建立 Proxy 後查詢。

在 API Proxy 的「開發」分頁中,左側的「Navigator」窗格會顯示 Proxy 端點下方的流程清單。按一下要查看的流程。舉例來說,GetQuote 流程就是不錯的選擇。然後在「程式碼」窗格中查看 XML,其中會顯示 <Condition> 元素中流程的資源路徑和動詞:/quoteGET

查詢參數

選取「GetQuote」GetQuote流程,然後按一下圖形流程檢視畫面中的第一個政策。這應該是擷取變數政策,可擷取預期會傳遞的查詢參數:StockSymbolLicenseKey。(如果您在網路上搜尋 SOAP 服務,系統會告知您要傳遞的 LicenseKey。)

擷取的查詢參數會儲存為變數,並由下一個政策用來建構 SOAP 訊息。