跳转至

设计时角色管理(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=500errmsg 为异常信息;保存类接口校验失败(角色名/编号为空、重名、编号已存在等)返回 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

请求示例

GET /api/designtime/applications/{applicationId}/roles?name=&pageNo=1&linesPerPage=10 HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataDataPackage<Role>(含分页字段与 datas)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 10,
    "rowCount": 4,
    "pageNo": 1,
    "pageCount": 1,
    "datas": [
      { "id": "...", "name": "角色名称", "roleNo": "...", "status": 1, "...": "..." }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 根据名称精确查询角色

按应用Id与角色名称精确匹配,返回首条匹配角色(无匹配时 datanull)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/getRoleByName(完整:{designer-context}/api/designtime/getRoleByName
  • 鉴权:是(需 designerToken)
  • Tag:设计时-角色模块

请求参数

参数名 位置 类型 必填 说明
applicationId query string 应用Id
name query string 角色名称(精确匹配)

说明:两个形参均未标注 @RequestParam,由 Spring MVC 按请求参数绑定;@Parameter 标注为必填。

请求示例

GET /api/designtime/getRoleByName?applicationId=<applicationId>&name=<角色名称> HTTP/1.1

响应

dataRole 完整对象;无匹配时为 null

{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "name": "...", "roleNo": "...", "...": "..." }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. 获取角色详情

按角色Id获取完整角色对象。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/applications/{applicationId}/roles/{roleId}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-角色模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
roleId path string 角色Id

响应

dataRole 完整对象。

{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "name": "...", "...": "..." }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


4. 新建角色

在指定应用下新建角色。校验角色名/编号非空、名称不重复、编号不重复;通过后生成设计时序列号作为Id。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/applications/{applicationId}/roles
  • 鉴权:是(需 designerToken)
  • Tag:设计时-角色模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
content body string(JSON) 角色对象 JSON

请求体

对应 Role 对象的 JSON(含 nameroleNostatusdefaultRoleorderNo 等)。

响应

dataJSONObject,仅含 id(新建角色Id)。校验失败时 errcode=40001errmsg 为国际化校验文案(如 {*[cn.myapps.core.role.please_input_name]*}{*[cn.myapps.core.role.name.exists]*}{*[cn.myapps.core.role.label.id.exists]*})。

{ "errcode": 0, "errmsg": "ok", "data": { "id": "<roleId>" }, "errors": null }
失败示例
{ "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

请求体

{ "name": "<角色名称>", "roleNo": "<角色编号>", "status": 1, "defaultRole": false, "orderNo": 0 }

响应

datanull(成功)。校验失败时 errcode=40001

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 40001, "errmsg": "<校验信息>", "data": null, "errors": null }


6. 删除角色(可批量)

按角色Id数组批量删除角色(含路径信息收集)。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/applications/{applicationId}/roles
  • 鉴权:是(需 designerToken)
  • Tag:设计时-角色模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
content body string(JSON) 角色Id数组(JSON 数组字符串,由 JsonPath 解析为 List<String>

请求体

["<roleId1>", "<roleId2>"]

响应

datanull(成功)。

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }