分页查询数据字典

验证状态:已源码核验、未联调;适用基线:Web 7fe6dd10、services 89bd222c;核验日期:2026-09-12

用途与 App 场景

按分页读取数据字典。当前 Web 列表页以无限滚动逐页加载(每页 10 条)。

Web 使用位置

页面/功能 角色或空间分支 调用证据
列表页分页加载 当前 $spaceId;后端授权 administrator 或 configuration-data-dictionary:read app/routes/($lng).$spaceId.configuration.data-dictionary._index/route.tsx:51

协议身份

operationId http-post-main-service-system-api-configuration-data-dictionary-page-cffdac9c
method + path POST /main-service/system-api/configuration/data-dictionary/page
base URL 当前 Web 使用同源相对 URL;App 的部署 base URL 未由源码固定
headers Accept: application/json;charset=UTF-8;有登录态时 Authorization: Bearer <token>;body 操作为 Content-Type: application/json
序列化 object body 由公共 wrapper 执行 JSON.stringify

前置条件与权限

需要有效登录态,并满足 administrator 角色或 configuration-data-dictionary:read。 Controller 会把 body 的 tenantId 强制覆盖为当前认证租户后再查询(es-center-server-main-service/src/main/java/com/es/center/server/configuration/controller/DataDictionaryController.java:152 setTenantId);资源表另受 MyBatis 租户拦截器按认证上下文约束。认证与空间

输入

JSON 路径/参数 JSON 类型 位置 必填 可空 默认值 枚举/范围/单位 说明 字段证据
body object body {} 查询字段 DataDictionaryPageRequestDTO;通用查询控制字段见查询控制字段 gt-common-configuration-dto/src/main/java/tech/gt/configuration/dto/DataDictionaryPageRequestDTO.java
current number body 否(Web 始终发送) 未承诺 省略时 Java primitive 为 0 当前 Web 从 1 开始,每页递增 分页页码 gt-common-configuration-dto/src/main/java/tech/gt/configuration/dto/DataDictionaryPageRequestDTO.java:19-24
pageSize number body 否(Web 始终发送) 未承诺 省略时 Java primitive 为 0;当前 Web 为 10 本组 Controller 未调用 normalizePageSize,服务端边界未闭合 每页条数 同上

输出、应答或事件

JSON 路径 JSON 类型 出现条件 可空 枚举/范围/单位 说明 字段证据
timestamp number JSON 响应 epoch 毫秒 响应生成时间 gt-common-core/src/main/java/tech/gt/api/ApiResult.java
status number JSON 响应 成功为 200 不能只看 HTTP status gt-common-core/src/main/java/tech/gt/api/ApiResult.java
error/localizedError/path string | null JSON 响应 成功通常为 null;失败见差异页 gt-common-core/src/main/java/tech/gt/api/ApiResult.java
extraData object 成功 固定四键:currentpagessizetotalsize 为本次每页条数) es-center-server-main-service/src/main/java/com/es/center/server/configuration/controller/DataDictionaryController.java:156-159
data array 业务成功 当前页记录;字段见本资源族字段模型 gt-common-configuration-common/src/main/resources/mapper/postgresql/gt-common-configuration/DataDictionaryMapper.xml#142(分页)

完成判据

status=200data 为当前页记录;翻页结束判据为 extraData.current >= extraData.pages(当前 Web 的 isNoMore 规则)。total=0/空数组是成功空结果。

示例

以下均为按已核验契约构造的示例,不是真实联调记录;ID、时间与租户为占位值。

请求:

1{
2  "dataDictionaryTypeCode": "device-vendor",
3  "sqlQuerySorter": {
4    "field": "dataDictionaryTypeCode",
5    "order": "ascend"
6  },
7  "sqlQueryLimit": 1000,
8  "current": 1,
9  "pageSize": 10
10}

成功响应:

1{
2  "timestamp": 1789142400000,
3  "status": 200,
4  "error": null,
5  "localizedError": null,
6  "path": null,
7  "extraData": {
8    "current": 1,
9    "pages": 1,
10    "size": 10,
11    "total": 1
12  },
13  "data": [
14    {
15      "dataDictionaryId": "dict-01",
16      "dataDictionaryTypeCode": "device-vendor",
17      "dataDictionaryCode": "hikvision",
18      "value": "海康威视",
19      "name": "海康威视",
20      "sort": 1,
21      "revision": 1,
22      "createdUsername": "administrator",
23      "createdTime": 1789142400,
24      "lastModifiedUsername": "administrator",
25      "lastModifiedTime": 1789142400,
26      "deleteTime": null,
27      "tenantId": "default"
28    }
29  ]
30}

信封字段证据:gt-common-core/src/main/java/tech/gt/api/ApiResult.java(成功/失败信封)与 es-center-server-main-service/src/main/java/com/es/center/server/config/JsonFormatConfig.java:20-113(时间序列化)。

错误与边界

认证失败/权限失败:认证与资源权限拒绝的 wire 形态见错误差异页对应锚点。 公共 Web helper 默认 15 分钟超时(app/.common/lib/fetch-timeouts.ts:4-76 fetchTimeout/fetchTimeoutResponseJson)。读取无副作用,可按网络策略重试。

调用关系与资源清理

无限滚动逐页加载(current 递增);筛选条件变化会重置分页。写操作成功后 reload 回第一页。

已知缺口

无已知会阻止按当前源码调用的关键契约缺口。 仅完成双仓静态源码核验,未执行真实 HTTP、数据库或权限矩阵联调。

验证状态与依据

结论 状态 仓库/基线 路径、符号及定位 内容指纹(脏文件)
Web 方法、路径、序列化与消费 已源码核验 web 7fe6dd10 app/.client/api/system/configuration/dataDictionaryApi.ts:36 configurationdataDictionaryPageApiapp/routes/($lng).$spaceId.configuration.data-dictionary._index/route.tsx:51;公共 wrapper:app/.common/lib/fetch-timeouts.ts:4-76 fetchTimeout/fetchTimeoutResponseJson 证据文件与 HEAD 一致
权限、输入、输出和完成语义 已源码核验 services 89bd222c es-center-server-main-service/src/main/java/com/es/center/server/configuration/controller/DataDictionaryController.java:149 pagegt-common-configuration-common/src/main/resources/mapper/postgresql/gt-common-configuration/DataDictionaryMapper.xml#142 selectListResponseDTO(分页) 证据文件与 HEAD 一致
JSON 字段与时间类型 已源码核验 services 89bd222c 本资源族字段模型DataDictionaryListResponseDTO.javaDataDictionaryGetByIdResponseDTO.java(gt-common-configuration-dto/src/main/java/tech/gt/configuration/dto/) 证据文件与 HEAD 一致
清单归属 已重新比对 inventory .scratch/institutional-app-api-docs/inventory/operations.json SHA-256 b5cce137b4fc602840fdbe74c99d90667b3e581815bddc709e263ffcc64e00f9(工作树仅既有格式化漂移,本票未修改)
真实部署联调 未执行 未发送请求、未连接数据库/缓存/JMS