跳转至

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)

请求示例

GET /api/authtime/domain/application/optimization?applicationId=__APP01 HTTP/1.1

响应

结构:统一 Resourcedata:字符串 "优化完成"

条件 errcode errmsg data
成功 0 ok 优化完成
抛异常 响应体为 null(异常被吞,方法 return null)

注:异常分支未走 Resource,仅 printStackTrace 后落到 return null,HTTP 200 + 空 body。

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "优化完成", "errors": null }
失败示例
HTTP 200,响应体为 null(异常被吞掉,不返回统一 Resource)


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 的数据源:

GET /api/authtime/domain/application/__APP01/getdbs HTTP/1.1
列出指定数据源下的表:
GET /api/authtime/domain/application/__APP01/getdbs?subNodes=isTables&datasourceId=__DS01 HTTP/1.1

响应

结构不**包统一 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 体)。