665
手機大全
開放API接入API網關__分步詳解_API 網關-阿裏雲
API網關上,創建API之前要創建分組,一個分組下可以有多個API。也就是說一項服務,可以包裝成一個分組,一項服務中的多個功能接口分別是這個分組下的多個API。
Part 2: 假設我有一個服務
以一個服務中,一個API的配置為例。假如我要開放一個服務。
- 服務名稱:已開放的API服務信息查詢
- 服務描述:客戶通過調用API可以查詢已經開放的API的列表、詳細信息等。
例1:Path中沒有動態參數
例2:Path中有動態參數
後端前端的靈活映射:
前端:客戶調用API時,API請求從客戶到網關的部分
後端:請求到達網關後,網關到實際後端服務的部分
- 後端host ≠ 前端域名
- 後端path ≠ 前端path
- 客戶傳入參數的位置和名稱 ≠ 實際後端服務接收參數的位置和名稱(注意body隻能前後端都為二進製或者都為form)
網關可以做全方位的前後都映射。
Part 3: 上麵這個例子我怎麼配置(例2)
Step1: 創建分組
Step2: 綁定域名
- 創建分組之後,到分組詳情頁麵獲取該分組的二級域名,如圖
- 去購買對外獨立域名globalservice.api.com的網站,將獨立域名CNAME解析到分組的二級域名上
- CNAME完成後,回到分組詳情頁麵,點擊“綁定域名”,將globalservice.api.com綁定到該分組
- 我的後端是https,所以我還需要上傳SSL證書,不支持上傳文件,需要把內容複製進來。
Step3: 創建API_基本信息
“基本信息”這一步完成的是API分組選定、API名稱設置、API認證方式和類型的選擇。完善API描述文案。
- 進入API列表頁
- 選擇跟API分組同一個區域
- 注意安全認證。【阿裏雲APP】表示客戶調用我的API時由API網關對其APPkey和Secret做驗證,我不需要認證客戶的身份。【無認證】表示任何人隻要獲取了調用方式就可以調用我的API,且無法區分調用者進行計量。無認證的API不建議上架數據市場。
- API類型。【公開】意味著任何人在“發現API”頁麵可以看見該API,且上架數據市場時,分組內公開類型的API才會上架。【私有】意味著任何人不會看見該API,除非我給某個APP授權了。所在分組上架數據市場時,不包括組內私有類型的API。
Step4: 創建API_定義API請求
“定義API請求”這一步完成的是第三方使用者調用我的API時的請求樣式,即前端。
首先配置協議、Path、method。如圖
- 我們支持HTTP/HTTPS協議,可以同時支持,後端如果要支持https,需要給獨立域名匹配SSL證書。
配置請求path。Path就是客戶調用我的API時,Url中.com後到?之前的部分。Path包含動態參數的情況我們到配置後端的時候再說。比如:
我希望用戶調用時的Url前部分為:
https://globalservice.api.com/getapilist?command=…
那麼我的Path就是:
/getapilist
由於要示範帶有body的API,所以此處將method選為post。
然後我們來配置入參,入參定義是指我的客戶調用我的API時,需要傳入的參數的說明。
API網關入參配置是支持混排的,我們把所有參數在一起配置,然後選擇參數的位置是Header、Query還是Body,甚至是在Path上。仍以上麵的初始假設為例,入參配置如下圖:
- 需要注意所有參數的名稱會校驗是否唯一。
- 我有5個參數,再次注意這一步配置的用戶調用時的入參,也就是前端的展現樣式。我需要客戶的Url在?後麵以keyvalue形式傳入command和region,配置在Query上。另外幾個參數key1、key2、group,需要用戶在body form傳入,配置在Body上。
- 左側有快捷鍵可以快速調整參數順序,跟定義展示有關。
至此,前端入參就配置完成了,下麵配置後端服務定義。
Step5: 創建API_定義API後端服務
“定義API後端服務”這一步完成的是後端服務接收API請求的樣式定義。即用戶按照上一步“定義API請求”的配置發送API調用到API網關,然後API網關通過解析您的映射規則,按照您的要求去請求您的後端,保證您後端服務最低成本的改造和最高的兼容。
也就是說這一步配置的是網關請求我的後端時,網關的請求樣式定義。我希望網關的請求符合我後端的既定格式。
首先配置後端基礎定義,包括後端服務地址、後端請求Path、後端method、超時時間。
- 後端服務地址,就是您後端服務的http(s)://host:port,也可以是一個域名。這裏,我的後端服務地址就是https://a.b.com:8080。
- 後端請求Path。即網關訪問後端時用的Path,是Url中後端服務地址後到?前的內容,我的後端請求Path就是/[region]/[group]
- 注意,我前端的Path是/getapilist,可以和後端不一樣,而且我後端的Path中需要有參數傳入。這個報錯下一部分說明。
- 後端的method也可以跟前端不一樣,我們建議最好一致,這裏仍然是POST。
然後配置後端服務參數,其實主要是映射
- 如圖,這一步會把上一步配置的前端入參拉取過來,需要變更的是左側標紅的兩列,當然如果前後端一致就不用變化了。
- 需要注意的是region、group我的前端是配置在Query和Body裏麵,而後端希望從Path以接收。上麵配置Path時報錯了,按照圖示更改之後,報錯就會消失了。
- 我根據我後端實際的參數名和接收位置進行了調整。圖示左側標紅的部分是針對後端需要修改的,右側不能修改的是既定前端配置。當然如果前端有變化還可以回去上一步修改。
配置完成如下圖:
注意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發布到測試環境。如下圖:
- 頁麵可以支持Mock或者非Mock兩周調試。
- 選擇Mock,需要寫定返回結果,Mock下調試不會真的去調用後端,但是會把訪問後端之前的參數校驗、Path尋址都校驗掉。
- 不選擇Mock則會真實調用後端服務,右側會返回真實的請求結果,這個結果可以是API網關返回的也可以是您後端返回的,看具體情況。
Step2:測試
這裏區別於調試的就是需要真實的模擬API使用者的場景來調用測試環境的API。測試環境的API可以通過分組的二級域名進行訪問,此時可以尚未綁定獨立域名。
API需要發布到測試環境,需要創建APP並操作授權後,才能真實模擬API調用。
發布API到測試環境,發布成功後在API列表環境的測試後麵顯示“運行中”
創建APP
查看AppID,AppID後麵要用於搜索APP
授權使該APP可以調用該API,授權要注意區分環境
更多說明:
- 至此,您已經能夠使用您創建的APP的Key和Secret模擬第三方客戶調用了。Key和Secret在控製台應用詳情查看。具體調用說明請參見《快速入門(調用API)》
- APP是API使用者調用API的身份,每一個API的使用者都需要申請APP。具體調用說明請參見《快速入門(調用API)》
- APP和API之間的鑒權關係通過授權來實現,就是哪個APP有調用哪個API的權限。授權的完成可以通過API開放者主動授權和數據市場完成購買兩種方式。具體請參見《快速入門(調用API)》
Step3:線上發布後上架數據市場
- 您需要準備一個獨立域名。該獨立域名不能與您後端服務地址相同,但是可以為現有域名的二級、三級甚至更多級的域名。
- 該域名需要解析到分組的二級域名上。比如我要把某一組API上架數據市場,那麼就要將獨立域名CNAME解析到該分組的二級域名上。
- 該域名需要在阿裏雲備案,或者原備案不在阿裏雲但是完成在阿裏雲的備案接入。
- 在API網關控製台,把準備好的域名綁定到分組上。
- 操作API發布到線上環境,然後就可以在數據市場走上架流程了。請參見《數據市場上架引導》。
Part 4: 輔助CheckList
- 調試、測試調不通,服務地址和Path配置是否正確?
- 返回結果不對,API網關支持您把後端的a映射成前端的b,映射是否正確?
- 調不通,綁定的獨立域名是否在阿裏雲備案,或者是否在阿裏雲接入備案?
- 調不通,綁定的獨立域名是否正確CNAME解析到相應的二級域名上?
- 報錯Invalid Url,調試、測試API時,API是否已經發布到測試環境?(環境後顯示“運行中”才是發布完成)
- 報錯Invalid Url,上架數據市場時API是否已經發布到線上?(環境後顯示“運行中”才是發布完成)
- 重新更改了定義調用發現沒生效,是否重新操作了發布?
- 上架數據市場的API不能選擇“無認證”,不能選擇“私有”
最後更新:2016-11-24 11:23:49
上一篇:
郵件推送常見退信代碼___使用問題_郵件推送-阿裏雲
下一篇:
概述及樣例__使用手冊(調用API)_API 網關-阿裏雲
多實例並發__命令行工具_批量計算-阿裏雲
漏洞掃描示例代碼__Java-SDK_SDK手冊_移動安全-阿裏雲
PullLogs__日誌庫相關接口_API-Reference_日誌服務-阿裏雲
雲監控ECS監控插件安裝方法__技術分享_技術運維問題_雲監控-阿裏雲
雙 11 充值、返現及抽獎規則___儲值卡_代金券及推薦碼_財務-阿裏雲
負載均衡是否支持CNAME__常見問題_負載均衡-阿裏雲
如何使用代金券?___代金券_代金券及推薦碼_財務-阿裏雲
編譯__用戶手冊_持續交付平台-阿裏雲
ALTER TABLE__數據定義語言_SQL語法參考_雲數據庫 OceanBase-阿裏雲
數加控製台幫助__平台介紹_數加平台介紹-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲