Restful接口

2021-6-29 About 22 min

# 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
}
1
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
}
1
2
3
4
5
6

重要提示

1.4.3开始,采用jwt认证,token较长, 支持放到header中, 当然url中的token也会兼容

axios.create({
    headers: {
        token: 244e8c1c-ec29-44de-ab37-f32f78825514 
    }
})
1
2
3
4
5

# 资源列表

# 获取文件夹列表

  1. 获取当前所有文件夹,以及当前用户对文件夹访问属性

get folder/getFolderList

Parameter Type Required Description Since
userId String false 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 1.2.2
  1. 获取当前所有文件夹列表

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"
    },
    ...
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 获取看板列表API

  1. 获取当前用户有权限的看板列表

get board/getBoardList

Parameter Type Required Description Since
userId String false 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 1.2.2
  1. 获取所有看板列表

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
        },
        ....
    ]
}
1
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

  1. 获取当前用户有权限访问的数据源列表

get datasource/getDatasourceList

  1. 获取所有数据源列表

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"
    },
    ....
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 获取数据集列表API

  1. 获取当前用户有权限的数据集列表

get/post dataset/getDatasetList

Parameter Type Required Description Since
userId String false 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 1.2.2
  1. 获取所有数据集列表

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
        },
        ....
    ]
}
1
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

  1. 获取用户有权限的图表列表

get widget/getWidgetList

Parameter Type Required Description Since
userId String false 不传则获取用户当前登录用户资源列表,传则获取指定资源列表 1.2.2
  1. 获取所有独立保存的所有图表列表

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
    },
    ...
  ]
}
1
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
) 
1
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: "资源分享",      }
1
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 是否具有删除权限

# 用户权限

  1. 全量更新用户权限

post admin/updateUserRes

  1. 增量授权用户权限

post admin/grantUserRes

  1. 增量删除用户权限

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),
    });
};
1
2
3
4
5
6
  • userIdArr
["uid1", "uid2"]
1
  • 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
  }
]
1
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
  1. ServiceStatus
prop value desc
status 1、2 1成功,2失败
msg success, error msg 相关消息
obj Object 为原始数字,测为操作影响记录数
  1. 更新成功
{
    "status": "1",
    "msg": "success", 
    "obj": 4,
    "id": null
}
1
2
3
4
5
6
  1. 更新失败
{
    "status": "2",
    "msg": "No Module Permission!",
    "obj": null,
    "id": null
}
1
2
3
4
5
6

# 查询用户授权

  1. 查询所有用户授权列表

get admin/getAllUserResList

Parameter Type Description Required Since
  1. 查询指定用户授权列表

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
    },
    ...
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 授权用户角色

  1. 增量授权用户角色

post admin/grantRoles

  1. 增量删除用户所属角色

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"]'
1
2
  • Response

ServiceStatus

{
    "status": "1",
    "msg": "success", 
    "obj": 4,
    "id": null
}
1
2
3
4
5
6

# 角色查询

  1. 查询当前用户为管理员的角色列表

get admin/getRoleList

  1. 查询所有角色列表

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"
    },
    ...
]
1
2
3
4
5
6
7
8
9
10
11
12
13

# 查询用户所属角色

  1. 查询用户所属角色

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"
    }
    .....
]
1
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
}
1
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
}
1
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
}
1
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
}
1
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
}
1
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
    },
    ....
]
1
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
Last update: January 16, 2024 14:08