feat(handler): 暴露公开查询 HTTP API(T-210)

This commit is contained in:
ila
2026-07-09 21:24:09 +08:00
parent 1903fa476b
commit 816a992f00
8 changed files with 662 additions and 158 deletions
+10
View File
@@ -273,3 +273,13 @@
- 决策:T-210 依赖 T-101(四类公开查询 OSI 客户端已完成)与 T-209(人群分类 HTTP 端点已存在)。实现时不再重复写 OSI 客户端,只补 handler/router、HTTP 测试、`docs/07` 与 OpenAPI。项目后续以内网部署为目标,但接口仍返回 PII/主数据,需在文档中明确绑定地址和鉴权边界。
- 验证:文档登记阶段运行 `git diff --check`;代码实现阶段再跑 `go test ./...`、`go build ./...`。
- 下一步:开始 T-210,实现公开查询 HTTP API。
## 2026-07-09 T-210 公开查询 HTTP API
- 状态:DONE
- 变更:新增 `handler/public.go` 与 `handler/public_test.go`,暴露 `GET /api/dictionaries/grid-addresses`、`/doctors`、`/drugs`、`/orgs`;`server.go` 注册四个公开查询路由并打印启动提示;既有人群分类端点 `/api/health-record/crowd` 保持不变。
- 变更:同步 `docs/07-本项目HTTP接口.md` 与 `docs/openapi.yaml`,补网格地址、责任医生、药品目录、机构查询;更新内网部署说明,明确服务本身不内置鉴权。
- RED:`go test ./handler -run TestPublic -count=1` 初次失败,缺少 `NewPublicHandler`。
- GREEN:补最小实现后 `go test ./handler -run TestPublic -count=1` 通过。
- 验证:`go test ./...` 通过;`go build ./...` 通过;`python -c "import yaml; yaml.safe_load(open('docs/openapi.yaml', encoding='utf-8'))"` 通过;`git diff --check` 通过。
- 决策:公开查询端点继续原样回写平台 JSON,不裁字段;`pageNo` 做 HTTP 层整数校验,其余查询条件按上游查询透传。项目按内网部署推进,但 API 返回主数据/PII 相关上下文,生产暴露前仍需网关鉴权和日志脱敏。
- 下一步:T-303 老年人查询探针;或继续补内网部署鉴权/访问控制任务。