设计时表单摘要管理(SummaryController)¶
表单摘要(SummaryCfg)的设计时管理:列表查询、详情获取、新建、更新与批量删除。摘要按 scope 区分(如待办摘要 scope=0,每个表单下待办摘要全局唯一)。
- 接口类型: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}、{summaryId}均为**明文设计时 ID**。 - 响应:统一
Resource(见 ../index.md「统一响应结构」)。成功errcode=0;该控制器所有异常(含OBPMValidateException)均统一捕获并返回errcode=500。 - HTTP 方法:受
CommonSecurityFilter限制,仅允许GET/POST/HEAD/OPTIONS。 - 请求体约定:POST/PUT 接收原始 JSON 字符串(
@RequestBody String content),由服务端用JSONObject.fromObject解析后通过json2obj转SummaryCfgVO;DELETE 接收 JSON 字符串数组(@RequestBody String[])。 - 名称来源:
SummaryCfgVO.name在保存前固定取自title字段(setName(getTitle()))。 - 列表字段:列表接口对每条数据做了字段裁剪与重组(详见各端点),数组键名为
data(非统一datas)。
1. 获取表单摘要列表¶
分页获取指定应用下的表单摘要列表,可按 formId、scope 过滤。返回字段经过裁剪重组,列表数组键名为 data(非 datas)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/{applicationId}/summarys(完整:{designer-context}/api/designtime/applications/{applicationId}/summarys) - 鉴权:是(需 designerToken)
- Tag:设计时-表单摘要模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| scope | query | string | 否 | 摘要类型(如 0 表示待办摘要),缺省则返回全部类型 |
| formId | query | string | 否 | 表单Id;非空时按表单分页查询,为空时返回应用下全量并附带分页字段 |
| pageNo | query | string | 否 | 页码(缺省 1) |
| linesPerPage | query | string | 否 | 每页条数(缺省 10) |
说明:上述 query 形参未标注
@RequestParam,由 Spring MVC 按请求参数绑定,故均可缺省。
请求示例¶
GET /api/designtime/applications/{applicationId}/summarys?scope=0&formId=&pageNo=1&linesPerPage=10 HTTP/1.1
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:JSONObject,含分页字段 linesPerPage/pageCount/pageNo/rowCount 以及 data(JSONArray,每项含 id/name/type/title/uri/fieldNames/summaryScript/scope/formId/isShowTags/formName)。注意列表数组键名为 data 而非 datas。
成功示例:
{
"errcode": 0,
"errmsg": "ok",
"data": {
"linesPerPage": 10,
"pageNo": 1,
"pageCount": 1,
"rowCount": 1,
"data": [
{
"id": "...",
"name": "摘要标题",
"title": "摘要标题",
"type": "...",
"uri": "...",
"fieldNames": "...",
"summaryScript": "...",
"scope": 0,
"formId": "...",
"formName": "表单名",
"isShowTags": false
}
]
},
"errors": null
}
2. 获取表单摘要详情¶
按摘要Id获取完整表单摘要对象。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/{applicationId}/summarys/{summaryId} - 鉴权:是(需 designerToken)
- Tag:设计时-表单摘要模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| summaryId | path | string | 是 | 表单摘要Id |
响应¶
data:SummaryCfgVO 完整对象。
{ "errcode": 0, "errmsg": "ok", "data": { "id": "...", "title": "...", "scope": 0, "...": "..." }, "errors": null }
3. 新建表单摘要¶
在指定应用下新建表单摘要。请求体解析为 SummaryCfgVO 后强制覆盖 applicationid(取路径 applicationId)、name(取 title),id 为空时生成新的设计时序列号;保存前做名称非空与重名、待办摘要(scope=0)唯一性校验。HTTP 状态码 201。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/{applicationId}/summarys - 鉴权:是(需 designerToken)
- Tag:设计时-表单摘要模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| content | body | string(JSON) | 是 | 表单摘要对象 JSON |
请求体¶
对应 SummaryCfgVO 对象 JSON(title、scope、formId、fieldNames、summaryScript 等)。
响应¶
data:JSONObject,仅含 id(新建摘要Id)。
4. 更新表单摘要¶
按摘要Id更新表单摘要对象。请求体解析后强制覆盖 applicationid 与 name(取 title),随后做重名与待办摘要唯一性校验并 saveOrUpdate。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/{applicationId}/summarys/{summaryId} - 鉴权:是(需 designerToken)
- Tag:设计时-表单摘要模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| summaryId | path | string | 是 | 表单摘要Id |
| content | body | string(JSON) | 是 | 表单摘要对象 JSON |
请求体¶
对应 SummaryCfgVO 对象 JSON。
响应¶
data:null(成功)。
5. 删除表单摘要(可批量)¶
按摘要Id数组批量删除表单摘要(删除前收集各摘要的路径信息)。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/{applicationId}/summarys - 鉴权:是(需 designerToken)
- Tag:设计时-表单摘要模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | path | string | 是 | 应用Id |
| ids | body | string | 是 | 表单摘要Id字符串数组 |
请求体¶
响应¶
data:String,固定为 "删除成功"。