Skip to content

后端服务总览

本板块说明 FastAPI backend 当前的工程骨架、装配入口、主链落点和模块边界。它的目标不是重复 API reference,而是帮助读者先建立后端整体理解,再进入更细的接口、数据库和部署文档。

结论

当前 backend 已形成一条比较稳定的装配与编排骨架:

  • main.py 暴露薄入口
  • bootstrap.py 创建 FastAPI app 并注册 outer layer
  • runtime.py 负责运行时依赖解析
  • api/ 承担 HTTP adapter
  • use_cases/ 承担关键主链编排
  • services / repositories / models 承担业务服务、数据访问与持久化

这意味着后端已经不是单纯把所有逻辑堆在 router 里的状态,但也还没有完全收敛成纯粹的 port-and-adapter 形态;当前最准确的描述是“主链 use case 已建立,装配边界已集中,存量服务层仍承担一部分 legacy 业务逻辑”。

当前目录骨架

目录 / 文件当前职责
app/main.pyASGI 入口与兼容导出
app/bootstrap.pycreate_app、router 注册、CORS、static delivery
app/runtime.pysettings、session、db、rag、storage resolver
app/api/auth / user / chat / prescription / assessment / safety / companion / sport
app/use_cases/chat、prescription、assessment、companion 主链编排
app/core/config、DB、RAG、safety、payload helper、validation rules
app/services/auth、sport、prescription、user、avatar、sms 等服务层
app/repositories/用户、运动、对话、陪伴、日志等数据访问层
app/models/SQLAlchemy 持久化模型
app/external/LLM manager、Spark client、OpenAI-compatible client

内容地图

文档用途
服务架构backend 的整体层次、核心组件与技术边界
入口与运行时装配main / bootstrap / runtime / runtime_dependencies 的装配边界
Use Case 边界当前已建立的主链 use case 与推荐扩展落点
模块边界auth/chat/sport/prescription/companion/user/safety/assessment 的职责划分
核心链路登录、聊天、处方、运动记录等端到端链路

后端阅读顺序

如果目标是快速接手后端,建议按这个顺序读:

  1. 先看 服务架构,确认整体骨架。
  2. 再看 入口与运行时装配,确认依赖从哪里进入系统。
  3. 然后看 Use Case 边界,确认主链编排落点。
  4. 最后再读 模块边界核心链路

当前需要明确的工程事实

  • 路由前缀当前是混合 surface,不是统一 /api/v1/
  • api/ 层已经开始消费 use case,但 services/ 仍然承接一部分业务逻辑与兼容层职责。
  • core/ 既包含规则,也包含 RAG 和 payload helper,不应简单理解成纯领域层。
  • external/ 层主要用于 LLM provider 接入,不等于所有外部依赖都已彻底 gateway 化。

变更落点判断

变更类型优先落点同步检查
新增 HTTP endpointapp/api/<module>.pyroute prefix、auth、schema、API test、前端 consumer
新增主链业务编排app/use_cases/<feature>/command/result、service/repository 依赖、use case test
扩展存量业务服务app/services/是否已有 use case 调用,是否会扩大 legacy service 边界
新增数据读写app/repositories/ + app/models/表名、关系、事务、migration、database reference
新增运行时依赖app/bootstrap.py + app/runtime.py是否挂入 app.state,是否有 resolver / dependency
新增 LLM provider 或外部服务app/external/app/core/ 专项边界超时、重试、降级、安全过滤和日志脱敏

后端文档的总览层只负责帮助读者判断落点。完整 method、path、request、response、errors、DB touchpoints 应进入后续 API 和数据库 reference。

来源锚点

  • apps/backend_service/app/main.py
  • apps/backend_service/app/bootstrap.py
  • apps/backend_service/app/runtime.py
  • apps/backend_service/app/api/
  • apps/backend_service/app/use_cases/