博主头像
LT技术站

行动起来,活在当下

  • 累计撰写 255 篇文章
  • 累计创建 131 个标签
  • 累计收到 0 条评论

目录

FastAPI

FastAPI 系列总目录

该系列教程系统化构建 FastAPI 项目,按"基础->工程化"分层教学。前5篇完成接口规范、类型提示和文档自动生成,着重路径参数、查询参数、请求体的精细划分。后7篇聚焦工程实践,通过 ASGI、数据库会话、依赖注入(支持测试时覆盖率控制)、异常处理(避免裸 raise)、鉴权集成(OAuth2/JWT)、多 worker 部署、测试 client 和配置注入等模块抽取核心业务,形成清晰的代码分层结构。读者应按顺序执行:先构建最小可行API(查看 /docs),再逐步添加契约验证(Pydantic)、依赖管理(Depends)、数据库会话、权限控制等技术组件。最终自检要点包括:是否通过Pydantic模型管理契约、是否合理使用依赖覆盖技术隔离开发测试环境、是否具备生产级多 worker 部署、健康检查和日志系统,避免仅限开发环境运行问题。

为什么要有这篇目录

FastAPI 上手很快,也很容易写成一堆无法测试、无法拆分的路由函数。本系列先把第一个接口跑起来,再把请求契约、依赖、数据库、异常、鉴权、测试和生产部署拆开。读的时候按顺序走:先能访问 /docs,再谈工程。

建议阅读顺序

  1. FastAPI 系列:从第一个接口到生产部署:系列边界、和 Flask / Django 的差别。
  2. FastAPI 为什么适合做 JSON API:ASGI、类型提示与自动文档
  3. 第一个接口怎么跑起来:安装、uvicorn 与 /docs
  4. 路径、查询和请求体为什么要分开声明
  5. Pydantic 模型怎么当契约:校验、响应模型和示例
  6. 路由怎么拆:APIRouter、前缀和项目结构
  7. 依赖注入到底省了什么:Depends、yield 与生命周期
  8. 数据库会话怎么进接口:SQLAlchemy 与依赖覆盖
  9. 状态码和异常为什么不要裸 raise
  10. 鉴权怎么接到 Depends 上:OAuth2 Password 与 Bearer JWT
  11. 中间件、CORS 和后台任务分别解决什么
  12. 测试怎么写才不连真实库:TestClient 与 dependency_overrides
  13. 生产怎么部署:workers、健康检查、配置与日志

怎么读

前 5 篇把请求从 URL 拆进函数参数,并让 OpenAPI 自动出来。后 7 篇把会话、权限和测试从路由函数里抽走。代码以 Python 3.11+、FastAPI 当前稳定版、Pydantic v2 为准。

读完可以自检的三件事

  • 请求和响应契约是否进了 Pydantic 模型,而不是手写 dict。
  • 数据库会话和当前用户是否是 Depends,测试时能否 dependency_overrides 换掉。
  • 生产是否有多 worker、健康检查和结构化日志,而不是只开 fastapi dev。

那年今日11 月 12 日

    评论区