# 接口协议
协议:http / https
方法:POST
内容类型:'Content-Type': 'application/json; charset=utf-8'
# API 接口
提供了3种调用服务的 API 接口,分别是:api、api2、api3
如果创建系统时选择了签名算法,那么 api 接口需要进行签名,签名的计算方法,见【签名算法】章节
# API 接口的参数与服务参数的关系
API 请求参数中的 body 为 注册服务时的请求参数
API 响应参数 与 注册服务时的响应参数一致
# api
接口:http://ip:port/api
api 请求的数据结构
{
"appid": "系统appid",
"sys_name": "系统名称",
"mdl_name": "模块名称",
"svc_name": "服务名称",
"body": "服务的数据对象",
"sign": "签名字符串,如果不签名,则传空字符串"
}
2
3
4
5
6
7
8
示例:
{
"appid": "9d6ab21aab7c491a80256fbc9180c4f8",
"sys_name": "prj_c",
"mdl_name": "mdl_test",
"svc_name": "svc_test_query_function",
"body": {
"sys_head": {
"usr_id": "",
"org_id": "",
"sys_id": "",
"mdl_func_id": "",
"login_key": ""
},
"data": {
"sys_id": "",
"mdl_func_id": "",
"mdl_func_parent_id": "",
"path": "",
"component": "",
"redirect": "",
"name": "",
"hidden": "",
"icon": "",
"isKeepAlive": "",
"title": ""
}
},
"sign":""
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
响应的数据结构
{
"code": 0,
"err_msg": "错误信息",
"otl_exc": "otl错误信息",
"data": "响应数据对象"
}
2
3
4
5
6
示例:
{
"code": 0,
"err_msg": "",
"otl_exc": {
"code": 0,
"msg": "",
"stm_text": "",
"sqlstate": "",
"var_info": ""
},
"data": [
{
"path": "",
"name": "",
"redirect": "",
"component": "",
"meta": {
"title": "",
"icon": ""
},
"children": [],
"route_id": "",
"parent_route_id": ""
}
]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# api2
接口:http://ip:port/api2
在 Headers 中设置 appid、sys-name、mdl-name、svc-name 和 sign,例如:
appid : "9d6ab21aab7c491a80256fbc9180c4f8"
sys-name : "prj_c"
mdl-name : "mdl_test"
svc-name : "svc_test_query_function"
sign : "签名字符串"
2
3
4
5
请求的body直接传服务的数据对象
由于采用了自定义头部,需要在 Access-Control-Allow-Headers 中加入 appid、sys-name、mdl-name、svc-name 和 sign,如: Access-Control-Allow-Headers=appid,sys-name,mdl-name,svc-name,sign
不建议采用此方式,有些浏览器对头部字段名称的命名有严格要求,从而引起接口调用失败。
请求的数据结构
{
// 服务请求的数据对象
}
2
3
响应的数据结构
{
"code": 0,
"err_msg": "错误信息",
"otl_exc": "otl错误信息",
"data": "响应数据对象"
}
2
3
4
5
6
# api3
接口:http://ip:port/api3/:appid/:sys-name/:mdl-name/:svc-name?sign=
此方式使用 RESTful 路径参数,将 appid、sys-name、mdl-name、svc-name 和 sign 拼写到请求的 URL 中
注意:sys-name、mdl-name、svc-name 中如果有下划线 "_",需转成连接符 "-"
接口示例:http://ip:port/api3/9d6ab21aab7c491a80256fbc9180c4f8/prj-c/mdl-test/svc-test-query-route?sign=
请求的数据结构
{
// 服务请求的数据对象
}
2
3
响应的数据结构
{
"code": 0, // 返回码:0-表示服务调用正确;非0-表示错误
"err_msg": "错误信息",
"otl_exc": "otl错误信息",
"data": "响应数据对象"
}
2
3
4
5
6
# 调用示例
在【注册服务】功能界面的左侧模块列表点击选择服务所在的模块,在右侧服务列表中找到要调用的服务,点操作列的【测试】按钮,打开服务测试界面,点击【增加测试用例】,之后点击URL栏右侧的【保存并测试】按钮,就可以直接调用服务,如图:

测试的 URL 默认的IP和端口是开发服务器的,也可以修改调用其他服务服务器的服务。
注意:这里请求参数中的 svc_name 在服务名称增加的后缀 @test,表示通过【测试功能】调用的服务,会绕过服务参数的签名;在实际调用服务的过程中,是不包含 @test 后缀的。