數據管理DMS的數據服務是將您在DMS上管控的數據以API的形式快速對外輸出的功能,本文將介紹如何新增、發布、測試與調用API。
前提條件
已開通API網關。
準備工作
本示例已提前創建student_courses
表,并插入部分測試數據,SQL語句如下:
/** 創建表 **/
CREATE TABLE `student_courses` (
`id` BIGINT(20) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主鍵',
`student_id` BIGINT(20) DEFAULT NULL COMMENT '學生ID',
`course_id` BIGINT(20) DEFAULT NULL COMMENT '課程ID',
`start_time` DATETIME DEFAULT NULL COMMENT '創建時間',
`score` int(11) DEFAULT NULL COMMENT '考試成績',
KEY `idx_student_course` (`student_id`,`course_id`),
KEY `idx_student_time` (`student_id`,`start_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='數據服務測試表';
/** 插入數據 **/
INSERT INTO `student_courses` VALUES (1,1,1,'2020-11-24 11:19:54',78);
INSERT INTO `student_courses` VALUES (2,1,2,'2020-11-24 05:51:36',68);
INSERT INTO `student_courses` VALUES (3,1,3,'2020-11-24 05:28:08',60);
INSERT INTO `student_courses` VALUES (4,2,1,'2020-11-24 07:21:17',67);
INSERT INTO `student_courses` VALUES (5,2,2,'2020-11-24 02:07:52',91);
INSERT INTO `student_courses` VALUES (6,2,3,'2020-11-24 10:35:35',94);
INSERT INTO `student_courses` VALUES (7,3,1,'2020-11-24 03:19:03',53);
INSERT INTO `student_courses` VALUES (8,3,2,'2020-11-24 08:19:18',94);
INSERT INTO `student_courses` VALUES (9,3,3,'2020-11-24 02:04:17',89);
步驟一:新增并發布API
- 登錄數據管理DMS 5.0。
在頂部菜單欄中,選擇 。
說明若您使用的是極簡模式的控制臺,請單擊控制臺左上角的圖標,選擇
。進入數據服務頁面后,在左側導航欄,單擊API開發。
進入API管理頁面,單擊右上角的新增API。
配置信息。
API的屬性包含屬性配置、執行配置、請求參數、返回參數,共4個部分,由于配置信息較多,系統用4個頁簽展示。本示例僅介紹部分涉及到的參數,完整的參數說明,請參見管理API。
屬性配置
名詞
名詞解釋
API名稱(必選)
數據API的名稱,支持漢字,英文,數字,下劃線(_),且只能以英文和漢字開頭,4~100個字符。
本示例的API名稱為
POC_API_test
。路徑(必選)
該路徑為API調用地址的組成部分。
路徑只能以
/
開頭,只支持英文、數字、下劃線(_)、橫杠(-),如/item/add
。API調用地址的結構為:
https://{分組域名}{路徑}
。如本示例的路徑定義為
/item/POC_API_test
、分組域名為xxxx-cn-hangzhou.alicloudapi.com
,則最終API調用地址為https://xxxx-cn-hangzhou.alicloudapi.com/item/POC_API_test
。請求方式(必選)
通用的API請求方式,支持的選項:
POST
GET
本示例的請求方式為GET。
執行配置
本示例的執行配置為單實例查詢的表引導模式,并設置
student_id
字段為請求參數,student_id
、course_id
、score
字段為返回參數。名詞
名詞解釋
實例查詢類型
實例查詢的類型,支持的權限:
單實例查詢:僅查詢一個數據庫實例。可以通過表引導模式和SQL腳本模式定義API。
跨實例查詢:通過編寫跨數據庫查詢DSQL,來實現多個不同實例數據的關聯查詢,詳細信息,請參見官方文檔。僅支持SQL腳本模式定義API。
數據源
待查詢的數據庫。通過輸入關鍵字,可查詢當前用戶有查詢權限的數據庫。
該參數僅當實例查詢類型為單實例查詢模式時顯示。
配置方式
選擇API的配置方式,支持的選項:
表引導模式:通過可視化的方式選擇表、字段,定義API的數據查詢配置。
腳本模式:通過手動編寫SQL腳本+變量的方式來定義API的數據查詢配置。
說明從表引導模式切換為腳本模式時,系統將提示切換模式將清空請求參數和返回參數。
該參數僅當實例查詢類型為單實例查詢模式時顯示。
選擇表
表引導模式下,可選擇需要執行查詢的表。可通過輸入關鍵字快捷查找表。
該參數僅當配置方式為表引導模式時顯示。
字段列表
該字段列表會展示當前選擇的數據表中的所有字段,您可以通過勾選的方式,快速定義目標字段作為API的請求參數和返回參數。
該參數僅當配置方式為表引導模式時顯示。
請求參數
名詞
名詞解釋
參數名稱
調用API時的入參名稱,支持英文、數字、下劃線(_)、橫杠(-),且只能以英文或下劃線(_)開頭,1~50個字符,默認為字段名。
變量名稱或字段名稱
這里顯示該參數來源,可來源于表引導模式的字段,也可來源于腳本模式的變量。
數據類型
包括字符串、整型、浮點三種基本類型,默認為字符串。本示例將
student_id
參數的數據類型設置為整型。此參數的作用為:在調用時將校驗請求參數值是否符合對應的類型,且在執行API時,保障SQL的正常執行。
返回參數
名詞
名詞解釋
參數名稱
返回參數名稱,支持英文、數字、橫杠(-)、下劃線(_),且只能以英文或下劃線(_)開頭,1~50個字符,默認為字段名。
變量名稱或字段名稱
僅顯示返回的字段名。
數據類型
包括字符串、整型、浮點三種基本類型,默認為字符串。
此參數的作用為:系統把查詢后的數據,按照此處定義進行數據轉換,最終將數據寫入返回的JSON中。
配置完成后,單擊發布按鈕。
說明您也可以單擊保存按鈕,保存該API的配置。
至此,已發布該API接口。
步驟二:測試API
驗證API配置是否正確。
- 登錄數據管理DMS 5.0。
在頂部菜單欄中,選擇 。
說明若您使用的是極簡模式的控制臺,請單擊控制臺左上角的圖標,選擇
。在左側導航欄,單擊API測試。
在下拉框中,選擇
POC_API_test
。在參數值文本框中。輸入
1
,單擊測試按鈕。執行后,右側會顯示執行信息以及執行的返回結果(以表格和JSON兩種方式呈現)。
步驟三:調用API
您可以通過多種方式調用API,例如使用SDK調用API和客戶端調用API,調用時認證方式包括簡單認證(AppCode)和摘要簽名認證方式。具體操作,請參見API調用概述。
本示例介紹使用簡單認證(AppCode)方式調用API。API調用地址的結構為:https://{Endpoint}{API路徑}?AppCode=AppCode值&請求參數1=xxx&請求參數2=xxx
。您可以在DMS控制臺上獲取Endpoint
、AppCode值
等信息。
- 登錄數據管理DMS 5.0。
在頂部菜單欄中,選擇 。
說明若您使用的是極簡模式的控制臺,請單擊控制臺左上角的圖標,選擇
。在左側導航欄,單擊API調用。
在API調用頁面,獲取
Endpoint
與AppCode值。本示例的API調用地址為:
https://xxxe3e-cn-hangzhou.alicloudapi.com/item/POC_API_test?AppCode=3284xxxxx&student_id=1
您可以將API調用地址復制到瀏覽器或通過curl命令調用該API。