2.0 KiB
2.0 KiB
架构维护备注
HTML 主入口中的架构层说明以 P1R 真实 API 规格第 7 节为来源。这里仅保留维护时需要核对的简版边界。
Controller
- 负责:鉴权入口、参数校验、
X-API-Version: 1校验、DTO 转换和统一响应封装。 - 不负责:业务规则、数据库访问、外部服务调用、手写业务 JSON。
- 证据:Controller 路由映射、OpenAPI operationId、版本头参数。
Application Service
- 负责:用例编排、事务、幂等、权限摘要、跨模块 facade、任务创建、错误归一和响应组装。
- 不负责:绕过领域 owner 直接写其他模块事实。
- 证据:Application Service 接口和实现、事务边界、幂等记录。
Domain
- 负责:聚合状态机、不变式、版本冲突、授权快照消费规则和状态变化决策。
- 不负责:依赖 Controller DTO、Yudao Web DTO 或外部 API DTO。
- 证据:领域服务、聚合规则、状态机测试。
Query / Assembler
- 负责:读模型查询、DTO / VO 组装、OpenAPI response 对齐。
- 不负责:把数据库表行、operation record 或 workflow task 原样暴露给前端。
- 证据:Query Service、Assembler、OpenAPI schema。
Persistence Mapper
- 负责:MyBatis Mapper、事务内持久化、唯一约束、owner / tenant 条件和查询 SQL。
- 不负责:业务状态机决策或外部服务语义。
- 证据:Mapper、SQL、Flyway、唯一索引。
External Adapter
- 负责:New-API、RAGFlow、文件服务、SSE、任务执行器等外部边界,暴露超时、错误分类、重试和补偿语义。
- 不负责:伪造外部成功或吞掉可恢复失败。
- 证据:adapter client、超时配置、错误映射、集成测试。
CommonResult
- 负责:对外统一响应形态,字段为
code/data/msg。 - 不负责:用
message替代msg,或用通用 JSON 行替代合同 DTO。 - 证据:OpenAPI base schema、Controller 返回类型、响应断言。