Restful接口
# Restful接口
重要提示
从v1.6.0开始所有请求取消.do
后缀,1.6之前的版本添加.do
后缀
# 认证API
登陆认证, 后续Restful API所有有安全认证的接口需要使用认证成功返回的token
post auth
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
username | String | 用户名 | true | |
password | String | 用户名 | true |
成功
{
"token": "VhzJp0k6",
"user": {
"password": "ee11cbb19052e40b07aac0ca060c23ee",
"username": "user",
"authorities": [],
"accountNonExpired": true,
"accountNonLocked": true,
"credentialsNonExpired": true,
"enabled": true,
"userId": "244e8c1c-ec29-44de-ab37-f32f78825514",
"company": "公司",
"department": "研发",
"name": "别名",
"title": "前端"
},
"msg": null,
"valid": true
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
失败
{
"token": null,
"user": null,
"msg": null,
"valid": false
}
2
3
4
5
6
重要提示
从1.4.3
开始,采用jwt认证,token较长, 支持放到header中, 当然url中的token也会兼容
axios.create({
headers: {
token: 244e8c1c-ec29-44de-ab37-f32f78825514
}
})
2
3
4
5
# 资源列表
# 获取文件夹列表
- 获取当前所有文件夹,以及当前用户对文件夹访问属性
get folder/getFolderList
Parameter | Type | Required | Description | Since |
---|---|---|---|---|
userId | String | false | 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 | 1.2.2 |
- 获取当前所有文件夹列表
get folder/getAllFolderList
Parameter | Type | Required | Description | Since |
---|---|---|---|---|
userId | String | false | 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 | 1.2.2 |
[
{
"id": 10000,
"name": "Root",
"parentId": -1,
"isPrivate": 0,
"userId": "1",
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-07-04 10:22:59.0",
"updateTime": "2018-07-04 10:22:59.0"
},
...
]
2
3
4
5
6
7
8
9
10
11
12
13
14
# 获取看板列表API
- 获取当前用户有权限的看板列表
get board/getBoardList
Parameter | Type | Required | Description | Since |
---|---|---|---|---|
userId | String | false | 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 | 1.2.2 |
- 获取所有看板列表
get board/getAllBoardList
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
无 |
{
"resList": [
{
"folderId": 10036,
"folderPath": "Root\\foodmart\\看板",
"id": 91,
"userId": "1",
"folderName": "看板",
"folderIsPrivate": 0,
"name": "Foodmart综合分析看板",
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2019-09-27 11:48:36.0",
"updateTime": "2020-02-19 11:59:46.0",
"layoutType": "freelayout",
"layout": null,
"edit": false,
"delete": false
},
....
],
"folderList": [
{
"id": 10000,
"name": "Root",
"parentId": -1,
"isPrivate": 0,
"userId": "1",
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-07-04 10:22:59.0",
"updateTime": "2018-07-04 10:22:59.0",
"edit": false,
"delete": false
},
....
]
}
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
30
31
32
33
34
35
36
37
38
# 获取数据源列表API
- 获取当前用户有权限访问的数据源列表
get datasource/getDatasourceList
- 获取所有数据源列表
get datasource/getAllDatasourceList
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
无 |
[
{
"id": 1,
"userId": "1",
"name": "foodmart",
"type": "jdbc",
"config": null,
"edit": false,
"delete": false,
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-07-04 10:27:06.0",
"updateTime": "2020-03-03 22:23:29.0"
},
....
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 获取数据集列表API
- 获取当前用户有权限的数据集列表
get/post dataset/getDatasetList
Parameter | Type | Required | Description | Since |
---|---|---|---|---|
userId | String | false | 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 | 1.2.2 |
- 获取所有数据集列表
get/post dataset/getAllDatasetList
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
无 |
{
"resList": [
{
"folderId": 10030,
"folderPath": "Root\\ES",
"id": 41,
"userId": "1",
"name": "es-bank",
"categoryName": "默认分类",
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-09-21 16:47:07.0",
"updateTime": "2020-02-20 18:13:48.0",
"data": null,
"edit": false,
"delete": false
},
....
],
"folderList": [
{
"id": 10000,
"name": "Root",
"parentId": -1,
"isPrivate": 0,
"userId": "1",
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-07-04 10:22:59.0",
"updateTime": "2018-07-04 10:22:59.0",
"edit": false,
"delete": false
},
....
]
}
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
30
31
32
33
34
35
36
# 获取图表列表API
- 获取用户有权限的图表列表
get widget/getWidgetList
Parameter | Type | Required | Description | Since |
---|---|---|---|---|
userId | String | false | 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 | 1.2.2 |
- 获取所有独立保存的所有图表列表
get widget/getAllWidgetList
{
"resList": [
{
"folderId": 10004,
"folderPath": "Root\\foodmart\\图表\\交叉表",
"id": 9,
"userId": "1",
"name": "2.3-行占比-开销占比",
"categoryName": null,
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-07-04 11:42:01.0",
"updateTime": "2020-03-07 14:51:19.0",
"dataset": null,
"data": null,
"edit": false,
"delete": false
},
...
],
"folderList": [
{
"id": 10042,
"name": "ddd",
"parentId": 10032,
"isPrivate": 0,
"userId": "1",
"userName": "超级管理员",
"loginName": "peter",
"createTime": "2018-12-06 12:08:19.0",
"updateTime": "2018-12-06 12:08:41.0",
"edit": false,
"delete": false
},
...
]
}
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
30
31
32
33
34
35
36
37
# 看板
# 大屏导出图片
get export/exportCockpit
Parameter | Type | Required | Description | Since |
---|---|---|---|---|
boardId | long | true | 大屏ID | 1.6.0 |
timeout | int | false | 等待截图时长, 单位s, 默认15s | 1.6.0 |
scale | long | true | 图片解析率, 默认1 | 1.6.0 |
type | long | true | png/jpeg/pdf, 导出类型默认png | 1.6.0 |
@RequestMapping(value = "/exportCockpit")
public ResponseEntity<byte[]> exportCockpit(
@RequestParam Long boardId,
@RequestParam(defaultValue = "15") Integer timeout, // 等待截图时长,单位s
@RequestParam(defaultValue = "1") float scale, // 图片解析率
@RequestParam(defaultValue = "png") String type // png/jpeg/pdf
)
2
3
4
5
6
7
# 授权
# 模块
code | 模块 | desc |
---|---|---|
menu | 功能菜单模块 | |
datasource | 数据源模块 | |
dataset | 数据集模块 | |
widget | 图表模块 | |
board | 看板模块 | |
job | 定时任务模块 |
# 功能菜单模块介绍
功能菜单部分目前为硬编码
{resId: 1, pid:-1, name: "配置", }
{resId: 2, pid:1, name: "数据源管理", }
{resId: 3, pid:1, name: "数据集管理", }
{resId: 4, pid:-1, name: "自助分析", }
{resId: 41, pid:-1, name: "复杂报表", }
{resId: 5, pid:-1, name: "看板", }
{resId: 51, pid:5, name: "看板管理", }
{resId: 52, pid:5, name: "网格布局", }
{resId: 53, pid:5, name: "驾驶舱布局", }
{resId: 7, pid:-1, name: "管理", }
{resId: 71, pid:7, name: "权限模板", }
{resId: 8, pid:7, name: "用户管理", }
{resId: 81, pid:8, name: "用户资源管理", }
{resId: 9, pid:1, name: "定时任务", }
{resId: 91, pid:1, name: "邮件发送", }
{resId: 10, pid:-1, name: "资源分享", }
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 权限/资源对象结构Res
属性 | 类型 | Required | 描述 |
---|---|---|---|
resType | String | true | 资源模块, 对应值: menu、datasource、dataset、widget、board、job |
resId | long | true | 对应模块资源ID |
edit | boolean | false | 是否具有编辑权限 |
delete | boolean | false | 是否具有删除权限 |
# 用户权限
- 全量更新用户权限
post admin/updateUserRes
- 增量授权用户权限
post admin/grantUserRes
- 增量删除用户权限
post admin/revokeUserRes
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
userIdArr | JSON String | 用户ID数组,支持一次更新多个用户权限 | true | 1.2.0 |
resIdArr | JSON String | Res[], 权限/资源列表数组 |
_this.updateUserRes = function (userIds, resIds) {
return _axios.post('admin/updateUserRes', {
userIdArr: JSON.stringify(userIds),
resIdArr: JSON.stringify(resIds),
});
};
2
3
4
5
6
- userIdArr
["uid1", "uid2"]
- resIds
[
{
"resId": 1,
"resType": "menu",
"edit": false
},
{
"resId": 1,
"resType": "datasource",
"edit": false
},
{
"resId": 7,
"resType": "widget",
"edit": false
},
{
"resId": 1,
"resType": "dataset",
"edit": false
},
{
"resId": 6745078,
"resType": "folder",
"edit": false
}
]
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
- ServiceStatus
prop | value | desc |
---|---|---|
status | 1、2 | 1成功,2失败 |
msg | success, error msg | 相关消息 |
obj | Object | 为原始数字,测为操作影响记录数 |
- 更新成功
{
"status": "1",
"msg": "success",
"obj": 4,
"id": null
}
2
3
4
5
6
- 更新失败
{
"status": "2",
"msg": "No Module Permission!",
"obj": null,
"id": null
}
2
3
4
5
6
# 查询用户授权
- 查询所有用户授权列表
get admin/getAllUserResList
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
无 |
- 查询指定用户授权列表
get/post admin/getUserResListByUserId
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
userId | Sring | true |
[
{
"userResId": "034f6429-cff6-4274-b5ff-2f9df9f8e1c4",
"userId": "244e8c1c-ec29-44de-ab37-f32f78825514",
"resId": 10042,
"resType": "folder",
"edit": false,
"delete": false,
"createTime": null
},
{
"userResId": "123ee3dc-44f8-4c58-8f68-c56c78a239a4",
"userId": "244e8c1c-ec29-44de-ab37-f32f78825514",
"resId": 47,
"resType": "widget",
"edit": false,
"delete": false,
"createTime": null
},
...
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 授权用户角色
- 增量授权用户角色
post admin/grantRoles
- 增量删除用户所属角色
post admin/deleteUserRole
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
userIdArr | JSON String | JSON.stringify(Arrary of User Id)["BoNSmgq5"] | true | |
roleIdArr | JSON String | JSON.stringify(Arrary of Role Id) | true |
- Request
userIdArr: '["BoNSmgq5"]'
roleIdArr: '["kZKs0eAB","mW7MgbRi"]'
2
- Response
ServiceStatus
{
"status": "1",
"msg": "success",
"obj": 4,
"id": null
}
2
3
4
5
6
# 角色查询
- 查询当前用户为管理员的角色列表
get admin/getRoleList
- 查询所有角色列表
get admin/getRoleListAll
- Request
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
无 |
- Response
[
{
"roleId": "9yp5FYGV",
"roleName": "Foodmart国家访问规则",
"userId": "admin"
},
{
"roleId": "afff8e98-c223-4b71-8a44-946b9eeb9585",
"roleName": "体验账号",
"userId": "1"
},
...
]
2
3
4
5
6
7
8
9
10
11
12
13
# 查询用户所属角色
- 查询用户所属角色
get admin/getUserRoleList
- Request
Parameter | Type | Description | Required | Since |
---|---|---|---|---|
userId | String | 用户ID,不传则查所有用户角色 | false |
- Response
[
{
"userRoleId": 5297009885287913052,
"userId": "cf592eb2-91fd-4319-925e-141d5a1b58b3",
"roleId": "afff8e98-c223-4b71-8a44-946b9eeb9585"
},
{
"userRoleId": 2139519606675883725,
"userId": "cf592eb2-91fd-4319-925e-141d5a1b58b3",
"roleId": "o7OfQhTB"
}
.....
]
2
3
4
5
6
7
8
9
10
11
12
13
# 角色权限
# 用户管理
# User对象结构
属性 | 值类型 | Requied | 解释 |
---|---|---|---|
userId | String | true | id 主键 |
loginName | String | true | 登陆名 |
userName | String | true | 昵称 |
userPassword | String | true | 密码 |
company | String | false | 公司 |
department | String | false | 部门 |
title | String | false | 职务 |
validDate | timestamp | false | 截止有效期 |
enabled | boolean | false | 是否有效 |
# 新增用户
post admin/saveNewUser
- Request
Parameter | Type | Description | Required | Default | Since |
---|---|---|---|---|---|
user | JSON String | 用户对象 | false | ||
md5Pwd | boolean | 密码是否加密 | false | false |
{
"loginName": "biuser",
"userName": "爱分析",
"userPassword": 'xxxx',
"company": "公司名称",
"department": "BI",
"title": "分析师",
"validDate": 4073990400000,
"enabled": true
}
2
3
4
5
6
7
8
9
10
- Response
成功
{
"status": "1",
"msg": "success",
"obj": {
"userId": "Sl4LqKFe",
"loginName": "api-new",
"userName": "新建api",
"userPassword": "f561aaf6ef0bf14d4208bb46a4ccb3ad",
"userStatus": null,
"company": "公司名称",
"department": "BI",
"title": "分析师",
"validDate": 4073990400000,
"enabled": true
},
"id": null
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
失败
{
"status": "2",
"msg": "No Module Permission!",
"obj": null,
"id": null
}
2
3
4
5
6
# 更新用户
post admin/updateUser
- Request
Parameter | Type | Description | Required | Default | Since |
---|---|---|---|---|---|
user | JSON String | 用户对象 | true | ||
md5Pwd | boolean | 密码是否加密 | false | false |
{
"userId": "cf592eb2-91fd-4319-925e-141d5a1b58b3",
"loginName": "biuser",
"userName": "爱分析",
"userPassword": null, // 密码为空则不修改密码
"company": "楚果",
"department": "BI",
"title": "分析师",
"validDate": 4073990400000,
"enabled": true
}
2
3
4
5
6
7
8
9
10
11
# 删除用户
post/get admin/deleteUser
Parameter | Type | Description | Required | Default | Since |
---|---|---|---|---|---|
userId | String | 用户ID | true |
- Response 成功
{
"status": "1", // 接口是否调用成功
"msg": "success",
"obj": 1, // 0 为接口调用成功,但是没有删除数据
"id": null
}
2
3
4
5
6
# 获取用户信息
get/post admin/getUserList?token=yU2TbYpA
Parameter | Type | Description | Required | Default | Since |
---|---|---|---|---|---|
userId | String | 用户ID, 不传获取所有用户列表 | false |
- Response
[
{
"userId": "a18033335555",
"loginName": "a18033335555",
"userName": "18033335555",
"userPassword": null, // 不返回密码
"userStatus": null,
"company": null,
"department": null,
"title": null,
"validDate": null,
"enabled": false
},
{
"userId": "admin",
"loginName": "admin",
"userName": "admin",
"userPassword": null, // 不返回密码
"userStatus": null,
"company": null,
"department": null,
"title": null,
"validDate": null,
"enabled": true
},
....
]
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