设计时角色管理(RoleDesignTimeController)¶
角色设计时资源管理:角色的增删改查、按名称精确查询、分页查询。
- 接口类型:REST 资源
- 基址:
${myapps.context-path.designer:}/api/designtime(类级@RequestMapping) - Tag:设计时-角色模块
公共说明¶
- 鉴权:是(需 designerToken)。控制器继承自
AbstractDesignTimeController(基类为@RestController),通过Security.getDesignerIdFromToken(request)从 designerToken JWT 中解析设计器用户。鉴权机制详见 index.md「鉴权说明」。 - 路径变量:
{applicationId}、{roleId}均为**明文设计时 ID**(与 designer 其他控制器一致,非 runtime 的 DES 加密密文)。 - 响应:统一
Resource(见 ../index.md「统一响应结构」)。成功errcode=0;异常默认errcode=500,errmsg为异常信息;保存类接口校验失败(角色名/编号为空、重名、编号已存在等)返回errcode=40001。 - HTTP 方法:受
CommonSecurityFilter限制,仅允许GET/POST/HEAD/OPTIONS。 - 请求体约定:POST/PUT/DELETE 接收原始 JSON 字符串(
@RequestBody String content),由服务端用JSONObject.fromObject解析。
1. 获取角色列表(可根据名字查询)¶
分页获取指定应用下的角色列表,可按名称、角色编号、状态过滤。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/applications/{applicationId}/roles(完整:{designer-context}/api/designtime/applications/{applicationId}/roles) - 鉴权:是(需 designerToken)
- Tag:设计时-角色模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| name | query | string | 否 | 按名称查询关键字 |
| roleNo | query | string | 否 | 角色编号 |
| status | query | integer | 否 | 状态 |
| pageNo | query | integer | 否 | 当前页数(缺省 1) |
| linesPerPage | query | integer | 否 | 每页行数(缺省 10) |
请求示例¶
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:DataPackage<Role>(含分页字段与 datas)。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"linesPerPage": 10,
"rowCount": 4,
"pageNo": 1,
"pageCount": 1,
"datas": [
{ "id": "...", "name": "角色名称", "roleNo": "...", "status": 1, "...": "..." }
]
},
"errors": null
}
2. 根据名称精确查询角色¶
按应用Id与角色名称精确匹配,返回首条匹配角色(无匹配时 data 为 null)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/getRoleByName(完整:{designer-context}/api/designtime/getRoleByName) - 鉴权:是(需 designerToken)
- Tag:设计时-角色模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | query | string | 是 | 应用Id |
| name | query | string | 是 | 角色名称(精确匹配) |
说明:两个形参均未标注
@RequestParam,由 Spring MVC 按请求参数绑定;@Parameter标注为必填。
请求示例¶
响应¶
data:Role 完整对象;无匹配时为 null。
{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "name": "...", "roleNo": "...", "...": "..." }, "errors": null }
3. 获取角色详情¶
按角色Id获取完整角色对象。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/applications/{applicationId}/roles/{roleId} - 鉴权:是(需 designerToken)
- Tag:设计时-角色模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| roleId | path | string | 是 | 角色Id |
响应¶
data:Role 完整对象。
{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "name": "...", "...": "..." }, "errors": null }
4. 新建角色¶
在指定应用下新建角色。校验角色名/编号非空、名称不重复、编号不重复;通过后生成设计时序列号作为Id。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/applications/{applicationId}/roles - 鉴权:是(需 designerToken)
- Tag:设计时-角色模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| content | body | string(JSON) | 是 | 角色对象 JSON |
请求体¶
对应 Role 对象的 JSON(含 name、roleNo、status、defaultRole、orderNo 等)。
响应¶
data:JSONObject,仅含 id(新建角色Id)。校验失败时 errcode=40001,errmsg 为国际化校验文案(如 {*[cn.myapps.core.role.please_input_name]*}、{*[cn.myapps.core.role.name.exists]*}、{*[cn.myapps.core.role.label.id.exists]*})。
{ "errcode": 40001, "errmsg": "{*[cn.myapps.core.role.name.exists]*}", "data": null, "errors": null }
5. 更新角色¶
按角色Id更新角色。请求体仅取 name/roleNo/status/defaultRole/orderNo 字段(其余字段不更新);校验通过后落地。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/applications/{applicationId}/roles/{roleId} - 鉴权:是(需 designerToken)
- Tag:设计时-角色模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| roleId | path | string | 是 | 角色Id |
| content | body | string(JSON) | 是 | 角色对象 JSON(至少含 name/roleNo/status/defaultRole) |
请求体¶
响应¶
data:null(成功)。校验失败时 errcode=40001。
6. 删除角色(可批量)¶
按角色Id数组批量删除角色(含路径信息收集)。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/applications/{applicationId}/roles - 鉴权:是(需 designerToken)
- Tag:设计时-角色模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| content | body | string(JSON) | 是 | 角色Id数组(JSON 数组字符串,由 JsonPath 解析为 List<String>) |
请求体¶
响应¶
data:null(成功)。