跳转至

设计时状态标签管理(StateLabelController)

状态标签(StateLabel)设计时资源管理:状态标签的增删改查(含批量删除)。

  • 接口类型:REST 资源
  • 基址${myapps.context-path.designer:}/api/designtime/applications(类级 @RequestMappingproduces = APPLICATION_JSON_VALUE
  • Tag:设计时-状态标签模块

公共说明

  • 鉴权:是(需 designerToken)。控制器继承自 AbstractDesignTimeController(基类为 @RestController),通过 Security.getDesignerIdFromToken(request) 从 designerToken JWT 中解析设计器用户。鉴权机制详见 index.md「鉴权说明」。
  • 路径变量{applicationId}{stateLabelId}{id} 均为**明文设计时 ID**(与 designer 其他控制器一致,非 runtime 的 DES 加密密文)。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;异常默认 errcode=500errmsg 为异常信息(如「 该名称已存在,请重新命名再保存! 」、{*[page.name.notexist]*})。
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • HTTP 状态码:新建接口返回 201 Created@ResponseStatus),其余接口 200 OK;统一 Resource 仍以 errcode 表达业务结果。
  • 请求体约定:POST/PUT/DELETE 接收原始 JSON 字符串(@RequestBody String content)或 JSON 字符串数组(@RequestBody String[]),由服务端用 JSONObject.fromObject 解析。

1. 获取状态标签列表

分页获取指定应用下的状态标签列表,可按名称或描述关键字查询。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/statelabels(完整:{designer-context}/api/designtime/applications/{applicationId}/statelabels
  • 鉴权:是(需 designerToken)
  • Tag:设计时-状态标签模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
searchword query string 按名称或描述查询关键字
pageNo query string 当前页数(缺省 1
linesPerPage query string 每页行数(缺省 10

说明:三个查询形参均未标注 @RequestParam,由 Spring MVC 按请求参数绑定,故可缺省;服务端做了空字符串兜底(pageNo 缺省 1linesPerPage 缺省 10)。@Parameter 中标注为必填,但实现做了缺省兜底。

请求示例

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

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataJSONObject,含分页字段 linesPerPage/pageCount/pageNo/rowCount,以及 data 数组(每项 {id, name, description, value, orderNo})。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 10,
    "pageCount": 1,
    "pageNo": 1,
    "rowCount": 2,
    "data": [
      { "id": "...", "name": "进行中", "description": "...", "value": "...", "orderNo": 1 }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 获取状态标签详情

按状态标签Id获取完整状态标签对象。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/statelabels/{stateLabelId}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-状态标签模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
stateLabelId path string 状态标签Id

响应

dataStateLabel 完整对象。

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


3. 新建状态标签

在指定应用下新建状态标签。请求体反序列化为 StateLabelid 为空时自动生成;name 为空时抛出 {*[page.name.notexist]*};保存前会做重名校验。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/statelabels
  • 鉴权:是(需 designerToken)
  • Tag:设计时-状态标签模块

请求参数

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

请求体

对应 StateLabel 对象的 JSON(含 namevaluedescriptionorderNo 等)。

响应

dataJSONObject,仅含 id(新建状态标签Id)。校验失败时 errcode=500(沿用异常返回,未走 40001),errmsg 为对应国际化/中文文案。

成功示例(HTTP 201):

{ "errcode": 0, "errmsg": "ok", "data": { "id": "<stateLabelId>" }, "errors": null }
失败示例
{ "errcode": 500, "errmsg": " 该名称已存在,请重新命名再保存! ", "data": null, "errors": null }


4. 更新状态标签

按状态标签Id更新状态标签对象(含重名校验)。校验逻辑会跳过「同名且同Id」的自身记录。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{applicationId}/statelabels/{id}
  • 鉴权:是(需 designerToken)
  • Tag:设计时-状态标签模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
id path string 状态标签Id
content body string(JSON) 状态标签对象 JSON

请求体

对应 StateLabel 对象的 JSON(id 以路径变量为准,请求体内的 id 会被覆盖)。

响应

datanull(成功)。

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


5. 删除状态标签(可批量)

按状态标签Id数组批量删除状态标签(含路径信息收集)。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/{applicationId}/statelabels
  • 鉴权:是(需 designerToken)
  • Tag:设计时-状态标签模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
ids body string 状态标签Id数组(JSON 数组反序列化为 String[]

请求体

["<stateLabelId1>", "<stateLabelId2>"]

响应

dataString,固定为 "删除成功"

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