设计时操作(Activity)管理(ActivityController)¶
设计时「操作」(Activity,即表单/视图上的操作按钮)的管理:详情获取、新建、更新、批量删除与列表排序互换。本控制器为**设计时**控制器(@Component("designer-activity-controller")),与 runtime 同名控制器区分。
- 接口类型:REST 资源
- 基址:
${myapps.context-path.designer:}/api/designtime/applications(类级@RequestMapping,produces = 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解析后通过json2obj转Activity;DELETE 接收原始 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 |
响应¶
data:Activity 完整对象。
{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "name": "...", "parentId": "...", "orderno": 0, "...": "..." }, "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(name、orderno、按钮配置等)。
响应¶
data:JSONObject,仅含 id(新建操作Id)。
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。
响应¶
data:null(成功)。
4. 删除操作(可批量)¶
按操作Id数组批量删除操作(删除前收集各操作的路径信息)。请求体为 JSON 字符串(由 JsonPath 反序列化为 List<String>)。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/{applicationId}/modules/activitys - 鉴权:是(需 designerToken)
- Tag:操作设计模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| content | body | string(JSON) | 是 | 操作Id字符串数组(JSON 数组形式) |
请求体¶
响应¶
data: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(默认必填)。
请求示例¶
响应¶
data:String,固定为 "修改成功"。