验证状态:已源码核验、未联调;适用基线:Web
7fe6dd10、services89bd222c;核验日期:2026-09-12
按筛选条件分页读取翻译词条。当前 Web 翻译管理列表页以本操作做无限滚动加载。本页描述当前 Web 可达调用与服务端实际合同,不把静态源码核验当作联调。
| 页面/功能 | 角色或空间分支 | 调用证据 |
|---|---|---|
| 翻译管理列表无限滚动 | 当前 $spaceId;后端授权 administrator 或 configuration-translation:read |
app/routes/($lng).$spaceId.configuration.translation._index/route.tsx:51 |
| 项 | 值 |
|---|---|
| operationId | http-post-main-service-system-api-configuration-translation-page-9aee80ab |
| method + path | POST /main-service/system-api/configuration/translation/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-translation:read(TranslationController.java:157)。Controller 强制 setTenantId(当前认证租户)(TranslationController.java:161),请求体中的 tenantId 会被覆盖;数据范围由租户拦截器与该覆盖共同约束。认证与空间。
| JSON 路径/参数 | JSON 类型 | 位置 | 必填 | 可空 | 默认值 | 枚举/范围/单位 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|---|
current |
number | body | 是 | 否 | 无 | ≥1;Web 固定从 1 递增 | 页码 | gt-common-configuration-dto/src/main/java/tech/gt/configuration/dto/TranslationPageRequestDTO.java:21 |
pageSize |
number | body | 是 | 否 | 无(Java primitive long) | Web 固定 10 | 每页条数;服务端未调用 normalizePageSize,边界未闭合(见缺口) |
TranslationPageRequestDTO.java:24 |
| 其余筛选字段 | 同 list | body | 否 | 是 | — | 见查询控制字段 | TranslationPageRequestDTO extends TranslationListRequestDTO |
TranslationPageRequestDTO.java:19 |
当前 Web 发送 { sqlQuerySorter: { field: "lastModifiedTime" }, ...body, pageSize: 10, current }(route.tsx:45-52)。
| JSON 路径 | JSON 类型 | 出现条件 | 可空 | 枚举/范围/单位 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|
timestamp/status/error/localizedError/path |
同信封 | JSON 响应 | — | — | 成功信封;status=200 |
gt-common-core/src/main/java/tech/gt/api/ApiResult.java |
extraData.current |
number | 成功 | 否 | 页码 | 当前页 | TranslationController.java:165-168 Map.of |
extraData.pages |
number | 成功 | 否 | 页数 | 总页数;Web 以 current>=pages 判定结束 |
同上;route.tsx infinite scroll |
extraData.size |
number | 成功 | 否 | 条数 | 每页大小 | 同上 |
extraData.total |
number | 成功 | 否 | 条数 | 总条数 | 同上 |
data |
array | 业务成功 | 否 | — | 翻译词条数组;字段同翻译列表 | TranslationMapper.xml#138 selectListResponseDTO |
status=200 且 data/extraData 可消费表示本页读取结束;current>=pages 表示没有更多页。空结果 data=[]、total=0 是成功空态。
以下均为按已核验契约构造的示例,不是真实联调记录。
请求:
成功响应:
认证失败/权限失败。公共 Web helper 默认 15 分钟超时(app/.common/lib/fetch-timeouts.ts:4-76)。读取无副作用,可按网络策略重试。
无长连接资源。列表页卸载即结束;无服务端游标。
pageSize 未经过 normalizePageSize,服务端上限未闭合(省略时 Java primitive long 默认 0 的行为未联调证实,与票 15 八族 page 的结论同源)。
仅完成双仓静态源码核验,未执行真实 HTTP、数据库或权限矩阵联调。
| 结论 | 状态 | 仓库/基线 | 路径、符号及定位 | 内容指纹(脏文件) |
|---|---|---|---|---|
| Web 方法、路径、序列化与消费 | 已源码核验 | web 7fe6dd10 |
translationApi.ts:35 configurationTranslationPageApi;route.tsx:51 |
证据文件与 HEAD 一致 |
| 权限、输入、输出和完成语义 | 已源码核验 | services 89bd222c |
TranslationController.java:158 page(tenantId 覆盖 :161、extraData :165-168) |
证据文件与 HEAD 一致 |
| JSON 字段与时间类型 | 已源码核验 | services 89bd222c |
TranslationPageRequestDTO.java、TranslationListResponseDTO.java |
证据文件与 HEAD 一致 |
| 真实部署联调 | 未执行 | — | 未发送请求、未连接数据库 | — |