mcp接口增加分页

This commit is contained in:
andy committed 2026-09-06 17:57:58 +08:00
1 parent 7243319bbb
commit 7f4adad7b1
16 files changed
+1157 -281

No files matched your search

+5 -3
View File
@@ -19,10 +19,10 @@
```mermaid
flowchart TD
APP["internal/app\n依赖装配与 readiness"]
H["internal/handler\nBearer、JSON-RPC、握手协商、schema、限流边界"]
S["internal/service\n查询边界、超时、结果语义"]
H["internal/handler\nBearer、JSON-RPC、握手协商、schema、分页边界"]
S["internal/service\n查询边界、超时、分页与结果语义"]
D["internal/domain\n稳定空间领域对象"]
R["internal/repository\npgxpool、固定参数化 PostGIS SQL"]
R["internal/repository\npgxpool、固定参数化 PostGIS SQL、过滤后总量"]
DB["8 张既有 PostGIS 表"]
APP --> H
@@ -37,6 +37,8 @@ flowchart TD
Handler 不知道物理表名,Repository 不组织自然语言回答,Domain 不依赖 MCP 或 pgx。可信数据范围在应用装配时由配置传入 Service,并由 Repository 在 SQL 中应用:默认 `town_allowlist` 使用参数化镇街数组过滤;显式 `all` 使用服务端布尔参数放开镇街过滤。范围选择不进入工具 schema,模型无法扩大权限。
七个工具共用无状态 `limit/offset` 分页。Handler 限制 `limit=1..20`、`offset=0..10000`;Service 应用各工具默认页大小并生成 `result_count`、`total_count`、`has_more` 和 `next_offset`;Repository 在授权范围、空间条件、有效几何和业务过滤完成后使用窗口统计总量,再以稳定排序执行参数化 `LIMIT/OFFSET`。请求超过末页且匹配总量大于零时,Repository 以同一只读查询条件探测第一页以恢复准确总量,响应保持 `status=ok` 和空 `data`,避免把“页码越界”误报为“没有记录”。
## 数据映射
| 领域结果 | 物理表 |