RoleAuthtimeController(角色管理)¶
查询软件(application)下的角色列表:支持 POST(带 body 关键词过滤)与 GET(无关键词)两种方式。POST 形态会过滤只返回启用状态(status==1)的角色并投影为精简 JSON;GET 形态直接返回原始 DataPackage<Role>。
- 类级基址:
${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>) - Tag:控制器未声明
@Tag(源码无@Tag注解) - 控制器源码:
obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/role/RoleAuthtimeController.java - 公共说明:
- 类继承
BaseAuthTimeController,通过其success(errmsg, data)/error(errcode, errmsg, errors)返回统一Resource(字段errcode/errmsg/data/errors,结构见 ../index.md「统一响应结构」)。 - 端点在
try/catch内捕获Exception并e.printStackTrace()后返回errcode=500、errmsg=e.getMessage()、data=null。 - 控制器未声明
@ResponseStatus,HTTP 状态码默认 200。 - 鉴权说明见 index.md「鉴权说明」(adminToken JWT)。
- 路径变量
applicationid为软件 id。 - 控制器内有两个同名重载方法
getRoleList,分别映射到POST与GET,路径相同(/application/{applicationid}/roles),按请求方法区分。
1. 获取角色列表(POST,带关键词过滤)¶
按软件 id 分页查询角色列表,支持按角色名称(name,body 内)模糊匹配。仅返回启用状态(status==1)的角色,并投影为精简 JSON(roleId/roleName/defaultRole)。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/application/{applicationid}/roles(完整:{manager-context}/api/authtime/application/{applicationid}/roles) - 鉴权:是(需管理员 adminToken,详见 index.md「鉴权说明」)
- Tag:角色管理(控制器未声明
@Tag)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationid | path | string | 是 | 软件 id |
| content | body | JSON | 是 | 过滤条件包体(字段见下) |
| currpage | query | string | 否 | 当前页码,缺省 1 |
| pagelines | query | string | 否 | 每页条数,缺省 Integer.MAX_VALUE(即不分页) |
请求体¶
JSON 对象(application/json),字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 角色名称模糊匹配关键词 |
请求示例¶
POST /api/authtime/application/__APP01/roles?currpage=1&pagelines=20 HTTP/1.1
Content-Type: application/json
{ "name": "管理员" }
响应¶
结构:统一 Resource。
data:JSONObject(net.sf.json),字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| role | array\<JSONObject> | 启用状态的角色数组(见下) |
| currpage | int | 当前页码 |
| pagelines | int | 每页条数(缺省时为 Integer.MAX_VALUE) |
| rowCount | int | 总记录数(含未启用的,由底层查询返回) |
role 元素字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| roleId | string | 角色 id |
| roleName | string | 角色名称 |
| defaultRole | boolean | 是否默认角色 |
注:源码仅遍历
dataPackage.getDatas()把status==1的角色加入role数组,rowCount为底层查询的全量行数(未按状态过滤),故role.length与rowCount可能不一致。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"role": [
{ "roleId": "__ROLE01", "roleName": "管理员", "defaultRole": false },
{ "roleId": "__ROLE02", "roleName": "普通用户", "defaultRole": true }
],
"currpage": 1,
"pagelines": 20,
"rowCount": 3
},
"errors": null
}
2. 获取角色列表(GET,无关键词)¶
按软件 id 分页查询角色列表(不支持名称过滤),直接返回底层 DataPackage<Role>,包含所有状态的角色。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/application/{applicationid}/roles(完整:{manager-context}/api/authtime/application/{applicationid}/roles) - 鉴权:是
- Tag:角色管理(控制器未声明
@Tag)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationid | path | string | 是 | 软件 id |
| currpage | query | string | 否 | 当前页码,缺省 1 |
| pagelines | query | string | 否 | 每页条数,缺省 Integer.MAX_VALUE(即不分页) |
请求示例¶
响应¶
结构:统一 Resource。
data:DataPackage<Role>,字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| linesPerPage | int | 每页条数 |
| pageCount | int | 总页数 |
| pageNo | int | 当前页码 |
| rowCount | int | 总记录数 |
| datas | array\<Role> | 角色数组(含全部状态) |
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"linesPerPage": 20,
"pageCount": 1,
"pageNo": 1,
"rowCount": 3,
"datas": [
{ "id": "__ROLE01", "name": "管理员", "status": 1, "defaultRole": false },
{ "id": "__ROLE02", "name": "普通用户", "status": 1, "defaultRole": true },
{ "id": "__ROLE03", "name": "已停用角色", "status": 0, "defaultRole": false }
]
},
"errors": null
}