跳转至

设计时操作(Activity)管理(ActivityController)

设计时「操作」(Activity,即表单/视图上的操作按钮)的管理:详情获取、新建、更新、批量删除与列表排序互换。本控制器为**设计时**控制器(@Component("designer-activity-controller")),与 runtime 同名控制器区分。

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

公共说明

  • 鉴权:是(需 designerToken)。控制器继承自 AbstractDesignTimeController(基类为 @RestController),通过 Security.getDesignerIdFromToken(request) 从 designerToken JWT 中解析设计器用户。鉴权机制详见 index.md「鉴权说明」。
  • 路径变量{applicationId}{activityId} 均为**明文设计时 ID**。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;该控制器所有异常均统一捕获并返回 errcode=500
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • 请求体约定:POST/PUT 接收原始 JSON 字符串(@RequestBody String content),由服务端用 JSONObject.fromObject 解析后通过 json2objActivityDELETE 接收原始 JSON 字符串@RequestBody String content),由 com.jayway.jsonpath.JsonPath.parse(content).json() 反序列化为 List<String>(与多数控制器接收 String[] 不同)。
  • 隶属关系:操作按钮的 parentId 由 query 参数 parentId 提供(通常为表单Id或视图Id),applicationid 取路径 applicationId

1. 获取操作详情

按操作Id获取完整操作(Activity)对象。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{applicationId}/modules/activitys/{activityId}(完整:{designer-context}/api/designtime/applications/{applicationId}/modules/activitys/{activityId}
  • 鉴权:是(需 designerToken)
  • Tag:操作设计模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
activityId path string 操作Id

响应

dataActivity 完整对象。

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


2. 新建操作

在指定应用下新建操作(按钮)。请求体解析为 Activity 后强制生成新的设计时序列号作为 id,并覆盖 parentId(取 query 参数)、applicationid(取路径)。HTTP 状态码 201

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/modules/activitys
  • 鉴权:是(需 designerToken)
  • Tag:操作设计模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
parentId query string 操作对应父Id(表单Id或视图Id),写入 parentId
content body string(JSON) 操作对象 JSON

请求体

对应 Activity 对象 JSON(nameorderno、按钮配置等)。

{ "name": "<操作名>", "orderno": 0, "...": "..." }

响应

dataJSONObject,仅含 id(新建操作Id)。

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


3. 更新操作

按操作Id更新操作对象。请求体解析后强制覆盖 id(取路径 activityId)、parentId(取 query 参数)、applicationid,随后 update

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{applicationId}/modules/activitys/{activityId}
  • 鉴权:是(需 designerToken)
  • Tag:操作设计模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
activityId path string 操作Id(覆盖请求体中的 id)
parentId query string 操作对应父Id(表单Id或视图Id)
content body string(JSON) 操作对象 JSON

请求体

对应 Activity 对象 JSON。

{ "name": "<操作名>", "orderno": 0, "...": "..." }

响应

datanull(成功)。

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


4. 删除操作(可批量)

按操作Id数组批量删除操作(删除前收集各操作的路径信息)。请求体为 JSON 字符串(由 JsonPath 反序列化为 List<String>)。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/{applicationId}/modules/activitys
  • 鉴权:是(需 designerToken)
  • Tag:操作设计模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
content body string(JSON) 操作Id字符串数组(JSON 数组形式)

请求体

["<activityId1>", "<activityId2>"]

响应

datanull(成功)。

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


5. 操作列表排序互换

将两个操作的排序号(orderno)互换。若检测到同一父级下存在重复 orderno,会先按列表顺序重置所有操作的 orderno(从 0 递增)再执行互换。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{applicationId}/activity/order
  • 鉴权:是(需 designerToken)
  • Tag:操作设计模块

请求参数

参数名 位置 类型 必填 说明
applicationId path string 应用Id
oId query string 选中操作按钮Id(其一)
nId query string 互换操作按钮Id(其二)

说明:oId/nId 均标注 @RequestParam(默认必填)。

请求示例

PUT /api/designtime/applications/{applicationId}/activity/order?oId=<id1>&nId=<id2> HTTP/1.1

响应

dataString,固定为 "修改成功"

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