閱讀665 返回首頁    go 手機大全


開放API接入API網關__分步詳解_API 網關-阿裏雲

API網關上,創建API之前要創建分組,一個分組下可以有多個API。也就是說一項服務,可以包裝成一個分組,一項服務中的多個功能接口分別是這個分組下的多個API。

Part 2: 假設我有一個服務

以一個服務中,一個API的配置為例。假如我要開放一個服務。

  • 服務名稱:已開放的API服務信息查詢
  • 服務描述:客戶通過調用API可以查詢已經開放的API的列表、詳細信息等。

例1:Path中沒有動態參數

rpc前後映射

例2:Path中有動態參數

roa前後映射

後端前端的靈活映射:

前端:客戶調用API時,API請求從客戶到網關的部分

後端:請求到達網關後,網關到實際後端服務的部分

  1. 後端host ≠ 前端域名
  2. 後端path ≠ 前端path
  3. 客戶傳入參數的位置和名稱 ≠ 實際後端服務接收參數的位置和名稱(注意body隻能前後端都為二進製或者都為form)

網關可以做全方位的前後都映射。

Part 3: 上麵這個例子我怎麼配置(例2)

Step1: 創建分組

創建分組

Step2: 綁定域名

域名說明

  1. 創建分組之後,到分組詳情頁麵獲取該分組的二級域名,如圖
  2. 去購買對外獨立域名globalservice.api.com的網站,將獨立域名CNAME解析到分組的二級域名上
  3. CNAME完成後,回到分組詳情頁麵,點擊“綁定域名”,將globalservice.api.com綁定到該分組
  4. 我的後端是https,所以我還需要上傳SSL證書,不支持上傳文件,需要把內容複製進來。

Step3: 創建API_基本信息

“基本信息”這一步完成的是API分組選定、API名稱設置、API認證方式和類型的選擇。完善API描述文案。

創建API基本信息

  1. 進入API列表頁
  2. 選擇跟API分組同一個區域
  3. 注意安全認證。【阿裏雲APP】表示客戶調用我的API時由API網關對其APPkey和Secret做驗證,我不需要認證客戶的身份。【無認證】表示任何人隻要獲取了調用方式就可以調用我的API,且無法區分調用者進行計量。無認證的API不建議上架數據市場。
  4. API類型。【公開】意味著任何人在“發現API”頁麵可以看見該API,且上架數據市場時,分組內公開類型的API才會上架。【私有】意味著任何人不會看見該API,除非我給某個APP授權了。所在分組上架數據市場時,不包括組內私有類型的API。

Step4: 創建API_定義API請求

“定義API請求”這一步完成的是第三方使用者調用我的API時的請求樣式,即前端。

首先配置協議、Path、method。如圖

創建API服務信息

  1. 我們支持HTTP/HTTPS協議,可以同時支持,後端如果要支持https,需要給獨立域名匹配SSL證書。
  2. 配置請求path。Path就是客戶調用我的API時,Url中.com後到?之前的部分。Path包含動態參數的情況我們到配置後端的時候再說。比如:

    我希望用戶調用時的Url前部分為:

    https://globalservice.api.com/getapilist?command=

    那麼我的Path就是:

    /getapilist

  3. 由於要示範帶有body的API,所以此處將method選為post。

然後我們來配置入參,入參定義是指我的客戶調用我的API時,需要傳入的參數的說明。

API網關入參配置是支持混排的,我們把所有參數在一起配置,然後選擇參數的位置是Header、Query還是Body,甚至是在Path上。仍以上麵的初始假設為例,入參配置如下圖:

創建API入參定義

  1. 需要注意所有參數的名稱會校驗是否唯一。
  2. 我有5個參數,再次注意這一步配置的用戶調用時的入參,也就是前端的展現樣式。我需要客戶的Url在?後麵以keyvalue形式傳入command和region,配置在Query上。另外幾個參數key1、key2、group,需要用戶在body form傳入,配置在Body上。
  3. 左側有快捷鍵可以快速調整參數順序,跟定義展示有關。

至此,前端入參就配置完成了,下麵配置後端服務定義。

Step5: 創建API_定義API後端服務

“定義API後端服務”這一步完成的是後端服務接收API請求的樣式定義。即用戶按照上一步“定義API請求”的配置發送API調用到API網關,然後API網關通過解析您的映射規則,按照您的要求去請求您的後端,保證您後端服務最低成本的改造和最高的兼容。

也就是說這一步配置的是網關請求我的後端時,網關的請求樣式定義。我希望網關的請求符合我後端的既定格式。

首先配置後端基礎定義,包括後端服務地址、後端請求Path、後端method、超時時間。

創建API後端服務信息

  1. 後端服務地址,就是您後端服務的http(s)://host:port,也可以是一個域名。這裏,我的後端服務地址就是https://a.b.com:8080。
  2. 後端請求Path。即網關訪問後端時用的Path,是Url中後端服務地址後到?前的內容,我的後端請求Path就是/[region]/[group]
  3. 注意,我前端的Path是/getapilist,可以和後端不一樣,而且我後端的Path中需要有參數傳入。這個報錯下一部分說明。
  4. 後端的method也可以跟前端不一樣,我們建議最好一致,這裏仍然是POST。

然後配置後端服務參數,其實主要是映射

後端參數映射

  1. 如圖,這一步會把上一步配置的前端入參拉取過來,需要變更的是左側標紅的兩列,當然如果前後端一致就不用變化了。
  2. 需要注意的是region、group我的前端是配置在Query和Body裏麵,而後端希望從Path以接收。上麵配置Path時報錯了,按照圖示更改之後,報錯就會消失了。
  3. 我根據我後端實際的參數名和接收位置進行了調整。圖示左側標紅的部分是針對後端需要修改的,右側不能修改的是既定前端配置。當然如果前端有變化還可以回去上一步修改。

配置完成如下圖:

創建完成

注意Path中的參數位置選擇Parameter Path。

常量參數和係統參數API的請求者不可見,由網關在請求後端服務時添加上

常量參數。比如我後端需要接收一個常量,但是這個常量我不喜歡被我的客戶看見,那麼我就設置一個常量參數,可以在Header或者Query裏麵接收。

係統參數。比如我需要獲取客戶調用API時用的APP的ID來做日誌統計,我在係統參數配置,可以在Header或者Query裏麵接收。強烈建議後端接收CaRequestId字段,每個請求一個ID唯一,便於問題定位和建立全量日誌。如下圖:

常量參數係統參數

Step6: 創建API_定義返回結果

目前返回結果在API網關是不做解析的,API網關直接轉發給API的請求者。請求示例建議是完整示例,帶有適當的注釋說明。

Part 4: 配置完定義——上架數據市場

完成Part3之後,就完成了API定義的配置。接下來還需要做調試、測試、線上發布。然後就可以上架雲市場了。

Step1:調試

在API網關控製台,進入API的管理,有個調試頁麵。在該頁麵可以設定入參來簡單調試,調試默認調用的是測試環境的API,所以需要把API發布到測試環境。如下圖:

調試

  1. 頁麵可以支持Mock或者非Mock兩周調試。
  2. 選擇Mock,需要寫定返回結果,Mock下調試不會真的去調用後端,但是會把訪問後端之前的參數校驗、Path尋址都校驗掉。
  3. 不選擇Mock則會真實調用後端服務,右側會返回真實的請求結果,這個結果可以是API網關返回的也可以是您後端返回的,看具體情況。

Step2:測試

這裏區別於調試的就是需要真實的模擬API使用者的場景來調用測試環境的API。測試環境的API可以通過分組的二級域名進行訪問,此時可以尚未綁定獨立域名。

API需要發布到測試環境,需要創建APP並操作授權後,才能真實模擬API調用。

發布API到測試環境,發布成功後在API列表環境的測試後麵顯示“運行中”

發布到預發

創建APP

創建APP

查看AppID,AppID後麵要用於搜索APP

APPID

授權使該APP可以調用該API,授權要注意區分環境

授權

更多說明:

  1. 至此,您已經能夠使用您創建的APP的Key和Secret模擬第三方客戶調用了。Key和Secret在控製台應用詳情查看。具體調用說明請參見《快速入門(調用API)
  2. APP是API使用者調用API的身份,每一個API的使用者都需要申請APP。具體調用說明請參見《快速入門(調用API)
  3. APP和API之間的鑒權關係通過授權來實現,就是哪個APP有調用哪個API的權限。授權的完成可以通過API開放者主動授權和數據市場完成購買兩種方式。具體請參見《快速入門(調用API)

Step3:線上發布後上架數據市場

  1. 您需要準備一個獨立域名。該獨立域名不能與您後端服務地址相同,但是可以為現有域名的二級、三級甚至更多級的域名。
  2. 該域名需要解析到分組的二級域名上。比如我要把某一組API上架數據市場,那麼就要將獨立域名CNAME解析到該分組的二級域名上。
  3. 該域名需要在阿裏雲備案,或者原備案不在阿裏雲但是完成在阿裏雲的備案接入
  4. 在API網關控製台,把準備好的域名綁定到分組上。
  5. 操作API發布到線上環境,然後就可以在數據市場走上架流程了。請參見《數據市場上架引導》。

Part 4: 輔助CheckList

  1. 調試、測試調不通,服務地址和Path配置是否正確?
  2. 返回結果不對,API網關支持您把後端的a映射成前端的b,映射是否正確?
  3. 調不通,綁定的獨立域名是否在阿裏雲備案,或者是否在阿裏雲接入備案?
  4. 調不通,綁定的獨立域名是否正確CNAME解析到相應的二級域名上?
  5. 報錯Invalid Url,調試、測試API時,API是否已經發布到測試環境?(環境後顯示“運行中”才是發布完成)
  6. 報錯Invalid Url,上架數據市場時API是否已經發布到線上?(環境後顯示“運行中”才是發布完成)
  7. 重新更改了定義調用發現沒生效,是否重新操作了發布?
  8. 上架數據市場的API不能選擇“無認證”,不能選擇“私有”

最後更新:2016-11-24 11:23:49

  上一篇:go 郵件推送常見退信代碼___使用問題_郵件推送-阿裏雲
  下一篇:go 概述及樣例__使用手冊(調用API)_API 網關-阿裏雲