MetadataManageController(元数据管理)¶
提供软件库元数据维护能力:按软件(或全部软件)优化数据库索引;按软件 id 列出其数据源与表结构(含表与表单的映射关系),供管理控制台元数据树形浏览。
- 类级基址:
${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>) - Tag:控制器未声明
@Tag(源码无@Tag注解) - 控制器源码:
obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/metadata/MetadataManageController.java - 公共说明:
- 类继承
BaseAuthTimeController,通过其success(errmsg, data)/error(errcode, errmsg, errors)返回统一Resource(字段errcode/errmsg/data/errors,结构见 ../index.md「统一响应结构」)。 doIndexOptimization的异常分支仅printStackTrace后落到方法末尾return null,由 Spring 序列化为空响应体(HTTP 200,body 为null)。doGetMetadata返回String(手工JsonUtil.collection2Json),**不**包统一Resource。- 控制器方法显式标注
@ResponseStatus(HttpStatus.OK)。 - 鉴权说明见 index.md「鉴权说明」(adminToken JWT)。
1. 优化索引¶
遍历指定软件(或 applicationId 为空时全部软件)的默认数据源,调用 MetadataProcess.doIndexOptimization(datasource) 优化数据库索引。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/domain/application/optimization(完整:{manager-context}/api/authtime/domain/application/optimization) - 鉴权:是(需管理员 adminToken,详见 index.md「鉴权说明」)
- Tag:(控制器未声明
@Tag)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationId | query | string | 否 | 软件 id;为空时遍历所有软件(queryByName(null)) |
请求示例¶
响应¶
结构:统一 Resource。
data:字符串 "优化完成"。
| 条件 | errcode | errmsg | data |
|---|---|---|---|
| 成功 | 0 | ok | 优化完成 |
| 抛异常 | — | — | 响应体为 null(异常被吞,方法 return null) |
注:异常分支未走
Resource,仅printStackTrace后落到return null,HTTP 200 + 空 body。
成功示例:
失败示例:2. 数据库列表¶
按软件 id 列出该软件下的数据源(默认根层加载),或按指定数据源 id 列出其下的物理表(subNodes=isTables)。表节点会附带其映射的表单 id(tlk_* 反查),供元数据树形浏览。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/domain/application/{applicationid}/getdbs(完整:{manager-context}/api/authtime/domain/application/{applicationid}/getdbs) - 鉴权:是
- Tag:(控制器未声明
@Tag)
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| applicationid | path | string | 是 | 软件 id(也为该软件的 application id) |
| subNodes | query | string | 否 | 树展开模式;空 / 缺省 = 列出数据源,isTables = 按数据源 id 列出表 |
| datasourceId | query | string | subNodes=isTables 时必填 |
数据源 id(仅 isTables 模式使用) |
请求示例¶
列出软件 __APP01 的数据源:
响应¶
结构:不**包统一 Resource,直接返回 JSON 字符串(JsonUtil.collection2Json)。
**响应体:JSONArray,元素 Node 对象,字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 数据源 id(isTables 模式:若表对应表单则为表单 id,否则为表名) |
| data | string | 显示名(数据源名 / 表名) |
| attr.name | string | 名称 |
| attr.appication | string | 所属软件 id(注:源码字段拼写为 appication,少一个 l) |
| attr.datasourceId | string | 数据源 id(仅 isTables 模式) |
| attr.curNode | string | 当前层节点类型,isDts(数据源)/ isTable(表) |
| attr.rel | string | 关系标记,数据源:db / db_selected(默认数据源);表:table |
| attr.subNodes | string | 子层标记,数据源:isTables;表:none |
| attr.formId | string | 表对应的表单 id(仅 isTables 模式且表已映射表单时) |
| state | string | 节点状态,源码固定为 closed |
成功示例(列出数据源):
[
{
"id": "__DS01",
"data": "默认数据源",
"attr": {
"name": "默认数据源",
"appication": "__APP01",
"datasourceId": "__DS01",
"curNode": "isDts",
"rel": "db_selected",
"subNodes": "isTables"
},
"state": "closed"
}
]
try/catch,异常时由 Spring 默认异常处理(HTTP 500,无统一 Resource 体)。