Files
full/wiki/api/18-mgt-rest.md

133 lines
4.9 KiB
Markdown
Raw Normal View History

# MGT REST API
后台用户、应用、角色、权限和部门管理。基础路径:`/rest/mgt`。除匿名接口外均需 Bearer Token标记“管理员”的路由还会执行管理员权限检查。
## 匿名接口
| 方法 | 路径 | 请求类型 | 说明 |
|---|---|---|---|
| GET | `/rest/mgt/ping` | 无 | 健康检查 |
| GET | `/rest/mgt/session` | 无 | Session 演示接口 |
| POST | `/rest/mgt/login` | `LoginRequest` | 登录并获取 token |
| POST | `/rest/mgt/refresh` | 当前凭证 | 刷新登录状态 |
| POST | `/rest/mgt/reset` | `ForgetPwdRequest` | 使用短信验证码重置密码 |
## 用户接口
| 路径后缀 | 请求类型 | 权限 | 说明 |
|---|---|---|---|
| `/user/role` | `FetchBase` | 登录 | 获取用户角色 |
| `/user/app` | `FetchBase` | 登录 | 获取用户应用 |
| `/user/pmn` | `FetchBase` | 登录 | 获取用户权限 |
| `/user/pmn_tree` | `FetchBase` | 登录 | 获取用户权限树 |
| `/user/create` | `UserRequest` | 管理员 | 创建用户 |
| `/user/del``/user/detail``/user/fetch` | `UserRequest` | 管理员 | 删除、详情和查询 |
| `/user/modify` | `UserRequest` | 管理员 | 修改用户 |
| `/user/list` | `FetchBase` | 管理员 | 用户列表 |
| `/user/set_role``/user/del_role` | `UserRoleRequest` | 管理员 | 设置或移除角色 |
| `/user/set_pmn``/user/modify_pmn``/user/del_pmn` | `AddPmnRequest` | 管理员 | 设置、修改或移除权限 |
表内接口均为 POST完整路径在后缀前加 `/rest/mgt`
## 应用接口
全部为管理员 POST 接口,基础路径 `/rest/mgt/app`
| 后缀 | 请求类型 | 说明 |
|---|---|---|
| `/create``/modify` | `ApplicationRequest` | 创建、修改应用 |
| `/del``/detail``/fetch` | `ApplicationRequest` | 删除、详情、查询 |
| `/user``/role``/pmn` | `FetchBase` | 获取应用关联用户、角色、权限 |
## 角色接口
全部为管理员 POST 接口,基础路径 `/rest/mgt/role`
| 后缀 | 请求类型 | 说明 |
|---|---|---|
| `/create``/modify` | `RoleReq` | 创建、修改角色 |
| `/del``/detail``/fetch` | `RoleReq` | 删除、详情、查询 |
| `/user``/app``/pmn``/pmn_tree` | `FetchBase` | 获取关联对象 |
| `/set_pmn``/modify_pmn``/del_pmn` | `AddPmnRequest` | 管理角色权限 |
## 权限接口
全部为管理员 POST 接口,基础路径 `/rest/mgt/pmn`
| 后缀 | 请求类型 | 说明 |
|---|---|---|
| `/create``/modify` | `PermissionRequest` | 创建、修改权限或菜单 |
| `/del``/detail``/fetch` | `PermissionRequest` | 删除、详情、查询 |
| `/sort` | `SortPmnRequest[]` | 批量排序 |
| `/user``/role` | `FetchBase` | 获取关联用户或角色 |
## 部门接口
全部为管理员 POST 接口,基础路径 `/rest/mgt/dpt`
| 后缀 | 请求类型 | 说明 |
|---|---|---|
| `/create``/modify` | `DptReq` | 创建、修改部门 |
| `/del``/detail``/fetch``/list``/fetch_tree` | `DptReq` | 删除、详情、分页、列表或树 |
| `/set_pmn``/modify_pmn``/del_pmn` | `AddPmnRequest` | 管理部门权限 |
| `/pmn``/pmn_tree``/user` | `FetchBase` | 获取部门权限、权限树或用户 |
| `/set_user``/del_user` | `DptUserRequest` | 批量移入或移出用户 |
## 请求结构
### FetchBase
`page:int``size:int``id:uint``keyword:string``identity:string``status:int8``workspace:string`
### LoginRequest
`account``password``phone``phone_code``workspace``app_id``app_key`,均为字符串。账号密码或手机验证码的有效组合由登录逻辑决定。
### ForgetPwdRequest
`account``code``password``phone` 均必填;密码至少 6 位。
### UserRequest
继承 `FetchBase`,增加 `account``name``password``phone``email``avatar``roles`
### UserRoleRequest
```json
{"user_id":1,"role_id":[1,2]}
```
### ApplicationRequest
继承 `FetchBase`,增加 `title``workspace``description`
### RoleReq
继承 `FetchBase`,增加 `name``description`
### PermissionRequest
继承 `FetchBase`,增加 `title``title_en``code``workspace``description``parent_id``menu_path``menu_icon``type``component``sort_key``order_desc``is_web_page``is_new_tab``is_full``hide_menu``web_url``type` 取值为 `1=菜单``2=按钮`
### AddPmnRequest
```json
{"workspace":"default","id":1,"list":[10,11]}
```
### SortPmnRequest
```json
[{"pmn_id":10,"sort_key":1},{"pmn_id":11,"sort_key":2}]
```
### DptReq / DptUserRequest
- `DptReq`:继承 `FetchBase`,增加 `name``leader_id``parent_id``tree`
- `DptUserRequest``dpt_id:uint``user_ids:uint[]`,均必填。
## 通用响应
接口使用 SDK 统一响应包装,常见数据结构包括:登录 `LoginResp`、分页 `{total,data,page,size}`、创建 `{id,identity}`。客户端必须同时判断 HTTP 状态和响应中的业务 code。