Proxy 代理服務

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

課程內容

透過本教學課程,您可以瞭解下列主題:

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

在這個教學課程中,您將瞭解如何將 Edge API Proxy 置於 SOAP 式網路服務的前方。

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

軟硬體需求

  • Apigee Edge 帳戶。如果您沒有 Apigee Edge 帳戶,可以按照建立 Apigee Edge 帳戶中的操作說明進行註冊。

建立 Proxy

在這裡,您將需要 Edge 產生位於 SOAP 服務之前的 Proxy。SOAP API Proxy 可分為兩種類型:

  • REST-SOAP-REST Proxy 類型會產生具備 SOAP 翻譯層的新 RESTful API。用戶端會像其他符合 REST 樣式的服務來呼叫此方法,並傳遞後端服務所需的查詢參數。邊緣會將這個值轉譯為服務預期的 SOAP 酬載。
  • 直通式 Proxy Proxy 類型可讓用戶端直接傳入 SOAP 酬載。 如此一來,便可享有 Edge 管理功能的 SOAP 服務呼叫。

Edge

如要使用 Edge UI 代理 SOAP 服務:

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

    欄位 描述元
    WSDL 來源

    選取:網址

    複製以下 WSLD 網址並貼到「輸入網址」欄位中:

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

    點選:驗證

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

    名稱

    保持原樣:delayedstockquote

    此為要建立的 API Proxy 名稱。

    基本路徑 保持原樣:/delayedstockquote
    說明 視需要新增說明,例如:Stock quote WSDL API Proxy
  6. 按一下「Next」
  7. 在「常見政策」頁面的「安全性:授權」下方,選取「通過 (無授權)」
  8. 按一下「Next」
  9. 在「WSDL 作業」頁面上,選取「從 REST 到 SOAP 至 REST」

    選取 Proxy 類型後,Edge 會顯示清單,當中列出其將產生 REST API 路徑的作業。這份清單可讓您從 WSDL 中找到的作業選取項目 (針對您正在尋找的特定組合)。請注意,這個資料表也會顯示 REST 用戶端用來呼叫後端 SOAP 服務的資源。

    在網頁上選擇其他設定時,請保持原樣。

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

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

    除非您要自訂新的 API Proxy (且未在本教學課程中),否則這會是一切內容。您可以繼續測試新的 API Proxy。

傳統邊緣 (Private Cloud)

如要使用傳統版 Edge UI 代理 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 Base Path」和「Description」 保留原樣。
  6. 按一下「Next」
  7. 在 WSDL 頁面上選取下列選項:
    這個欄位中 採取行動
    API Proxy 類型

    選取 [REST 到 SOAP]

    選取 Proxy 類型後,Edge 會顯示清單,當中列出用來產生 REST API 路徑的作業,如下所示。這份清單可讓您從 WSDL 中找到的作業中進行選取 (如果您找不到特定組合)。請注意,這個資料表也會顯示 REST 用戶端用來呼叫後端 SOAP 服務的資源。

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

    通訊埠類型:DelayedStockquoteSoap 選取全部三項 WSDL 作業。其他設定則維持不變。

  8. 按一下「Next」
  9. 在「安全性」頁面中選取「通過 (無)」
  10. 按一下「Next」
  11. 接受虛擬主機預設值,然後點選「Next」(下一步)
  12. 在「建構」頁面中接受預設設定,並點選「建構及部署」,讓 Edge 開始產生 Proxy。

    邊緣會產生符合 REST 樣式的 API Proxy。從 WSDL 中決定服務支援的作業、輸入參數等。Edge 會建議每項作業要使用的 HTTP 方法。一般而言,Edge 會將作業轉換為 GET 要求,這類要求具有可快取的優勢。Edge 也會設定後端目標端點,這個端點可能會因 SOAP 作業而異。

    除非您要自訂新的 Proxy (且未在本教學課程中),否則這些 Proxy 都不會僅供您本人使用。您可以繼續測試新 Proxy。

測試 Proxy

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

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

舉例來說,如果貴機構是 docfood、環境為 test,且您使用 Edge Enterprise 雲端,則可執行類似下方的指令:

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

如果您為 StockSymbol 查詢參數輸入 GOOG,則應該會取得 Alphabet Inc. Class 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 至 SOAP 至 REST」的 SOAP 服務 Proxy 時,Edge 會自動產生 OpenAPI 規範。您可以使用 OpenAPI 規格產生 API 的 API 說明文件。

如要取得 OpenAPI 規格,只要前往以下網址:

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

額外抵免額:如何找出要使用的資源、動詞和查詢參數?

在測試 API 呼叫中,您在對後端 SOAP 服務的 cURL 呼叫中使用特定資源和查詢參數。但該如何自行找出來?

資源和動詞

在建立 Proxy 的 API Proxy 精靈中,您已看到 SOAP 作業如何對應到 API 動詞和資源。如果您未寫下這些指令,以下是在 Proxy 建立之後可以找到的方法。

在 API Proxy 的「開發」分頁中,左側「導覽器」窗格的「Proxy 端點」下方會顯示流程清單。按一下您感興趣的流程。例如,GetQuote 流程是相當不錯的候選項目。接著,在「Code」窗格中查看 XML,當中會顯示 <Condition> 元素中流程的資源路徑和動詞:/quoteGET

查詢參數

選取「Getquote」流程GetQuote,然後按一下圖形流程檢視畫面中的第一個政策。這項資訊應為「擷取變數」政策,用於擷取預計傳送的查詢參數:StockSymbolLicenseKey。(如果您在網路搜尋 SOAP 服務,便會知道要傳遞 LicenseKey 的內容)。

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