架构目标和目录结构
这一章参考 poster-fastapi 项目的组织方式,讲一个从零搭建企业级 FastAPI 项目的思路。
这里的“企业级”不是指代码写得复杂,而是指项目具备这些基础能力:
- 配置统一从环境变量读取。
- 路由、控制器、业务逻辑、数据库模型分层清楚。
- 数据库使用 SQLAlchemy 2.0,表结构用 Alembic 迁移。
- 登录后签发 JWT,接口默认需要 Token。
- 公开接口通过白名单放行。
- 响应结构统一,异常处理统一。
- 启动时能检查数据库连接,调试信息不泄露密码。
一、FastAPI 中的 MVC 怎么理解
传统 MVC:
FastAPI 主要写 API,没有服务端页面,所以可以理解成:
也就是说,一个请求的大致链路是:
二、推荐目录结构
三、每层不要做越界的事
分层的目标是让代码好找、好测、好改,不是为了把一个简单功能拆成很多文件。
四、企业项目里常见的接口风格
统一挂载 /api:
路由文件只负责注册:
控制器负责响应:
业务层负责真正逻辑:
这样一个接口出问题时,你能快速判断应该去哪个文件看。

