基于已開發(fā)好的API,將多個API通過服務編排的方式創(chuàng)建API。本文為您介紹如何通過服務編排的方式創(chuàng)建API。
步驟一:選擇生成API的方式
在Dataphin首頁,選擇服務 > 開發(fā)。
選擇服務項目,再單擊左側導航欄的API,在API頁面單擊+新建API按鈕。
在API創(chuàng)建方式選擇對話框中,選擇組合API,單擊確定。
步驟二:配置API的參數信息
在新建API頁面配置參數。
參數
描述
API基礎信息配置
API名稱
API名稱命名規(guī)則如下:
只能包含漢字、字母、數字或下劃線(_)。
長度為4~42個字符。
以字母開頭。
全局唯一。
請求方式
API請求方式僅支持GET:
GET:請求服務器獲取指定的某個資源。
API分組
選擇當前項目下配置的API分組,如需創(chuàng)建,請參見創(chuàng)建服務分組。
描述
填寫對API的簡單描述。128個字符以內。
協(xié)議
僅支持HTTP。HTTP即超文本傳輸協(xié)議(HyperText Transfer Protocol),是應用最廣泛的網絡協(xié)議。
若網關配置為阿里公有云API網關(專享實例或共享實例)時,支持勾選HTTPS協(xié)議,請確保獨立域名的SSL證書有效,避免無法正常調用。請通過選擇平臺管理網絡配置,在網絡配置頁面,進行SSL證書配置。
超時時間
超時時間用于監(jiān)控API調用的時長。調用API過程中如果超過了設定的超時時間,則調用API時會報錯,便于您及時發(fā)現并處理調用API的異常情況。異常情況查看,詳情請參見查看及管理運維監(jiān)控API。
緩存設置
支持開啟或關閉。開啟后需配置緩存時長。默認300秒,支持設置60~1000000之間的正整數。
版本號
請?zhí)顚慉PI的版本號,每份配置信息會有所屬版本號,以便和上個版本信息對比。64字符以內。該API下版本號唯一。
返回類型
默認JSON。
API服務編排
API參考
可查看子API的參數信息,便于編輯服務編排腳本。可以在API參考彈框點擊API測試,對引用的子API進行測試。
按照下圖操作指引,可快捷為腳本添加返回參數。
說明組合API支持引用的條件為:
需要申請該API的個人使用權限才能應用該API,詳情請參見管理API權限。
該API為非API組合類型(直連API、邏輯表API、注冊API)。
API的請求方式為GET且已發(fā)布。
編排腳本
在編輯框中根據系統(tǒng)提示信息編輯腳本,編寫腳本內容后,需點擊參數解析按鈕,進行語法校驗、解析引用子API的請求參數;若修改了腳本,需重新解析。
腳本試運行
單擊SQL試運行,在請求參數輸入對話框中,輸入試運行的值,然后單擊確認。您可以在運行日志查看SQL試運行實際執(zhí)行的SQL語句。
語法說明
支持AviatorScript 5.0版本,編寫腳本時請參考5.0版本的編程指南。
AviatorScript僅支持以##開頭進行單行注釋,如果需要對多行代碼進行注釋,可連續(xù)使用##對相應行代碼進行注釋。
AviatorScript中變量定義時需要給參數進行賦值。
a = 1;
let p = 2;
編寫業(yè)務處理邏輯引用子API時,通過
API_APIID.返回參數名
指定子API的返回參數;引用組合API的請求參數需要用${參數名}
定義,且組合API的請求參數名不能以API_
開頭。c1 = ${API_APIID.c1};
c2 = ${API_APIID.c2};
c3 = c1 + c2 + ${p3};
定義組合API返回的字段并以return返回,其中
f1,f2
為返回字段名c1,c2
為返回字段的取值變量。let result = seq.map("f1", c1, "f2", c2);
return result;
腳本說明
場景1:調用多個API,并將多個API的結果統(tǒng)一返回:
## 根據業(yè)務需求,編寫計算腳本,通過“API_APIID.返回參數名”指定子API的返回參數 c1 =${API_00001.c1} c2 = ${API_00002.c1} let result = seq.map("f1", c1, "f2", c2); return result;
場景2:根據判斷,調用不同的API:
## 編寫處理邏輯:根據條件判斷,調用不同API,獲取不同的返回結果; c1=''; if (${p3} == "linlin"){ ## 調用API_00001返回的number值作為組合API的返回參數; c1=${ API_00001.number}; } else { ## 調用API_00002返回的number值作為組合API的返回參數; c1= ${API_00002.number}; } let result = seq.map("f1", c1); return result;
場景3:調用多個API,并對API返回的值做計算處理:
##編寫處理邏輯:將多個API返回值進行求和、求均值處理; ## API_00001與API_00002返回的number求和,結果作為組合API的返回參數; total = ${API_00001.number} + ${API_00002.number}; ## API_00001與API_00002返回的number求均值,結果作為組合API的返回參數; average = (${API_00001.number} + ${API_00002.number}) / 2; let result = seq.map("f1", total,"f2",average); return result;
請求參數
參數名
對外開放的參數,即用戶訪問API時直接使用的參數。不支持以API_開頭,128個字符以內。
參數類型
支持選擇參數類型為Array(int)、Array(string)、DOUBLE、FlOAT、STRING、DATE(yyyy-MM-dd HH:mm:ss)、BOOLEAN、INT、LONG、SHORT、BIGDECIMAL,需選擇參數名對應的綁定字段的參數類型。
示例
填寫請求參數值的示例,便于開發(fā)者理解。
描述
填寫對請求參數的簡單描述。
是否必填
必填參數,若在調用API時不傳參數值,則API調用失敗。
請求參數映射關系
解析腳本中引用的子API,返回腳本中引用的子API以及請求參數。在調用子API時,根據映射關系,將組合API的入參值傳給子API的請求參數進行調用。如果子API請求參數為必填時,必須配置映射。
請求參數映射關系
配置子API請求參數與組合API請求參數的映射關系。
返回參數
參數名
返回參數名必須與腳本中定義的返回字段名相同,否則取法獲取對應的字段返回值。
參數類型
返回參數類型包括DOUBLE、FlOAT、STRING、DATE(yyyy-MM-dd HH:mm:ss)、BOOLEAN、INT、LONG、SHORT、BIGDECIMAL、Array(int)、Array(string),需選擇參數名對應的綁定字段的參數類型。
示例
填寫返回參數值的示例,便于開發(fā)者理解。支持輸入不超過50個字符。
描述
填寫對返回參數的簡單描述。支持輸入不超過100個字符。
單擊提交,即可完成API的生成。
后續(xù)步驟
生成API后,需要對API進行測試并發(fā)布至數據服務市場,便于后續(xù)應用可以調用API。具體操作,請參見測試與發(fā)布API。
若需要對API進行刪除、版本管理、轉讓負責人等操作,請參見查看及管理API。