FastAPI系列-10-依赖注入
FastAPI 通过依赖注入实现上下文解析与业务逻辑的解耦。处理函数在签名中用 `Depends` 声明“需要什么”,框架启动时构建依赖图,请求时按拓扑序解析并注入结果,无需关心资源构造细节。`yield` 依赖形态将资源生命周期分为两段:`yield` 之前准备资源并注入,响应返回后自动执行 `yield` 之后的清理逻辑,框架借助 `AsyncExitStack` 保证即使处理函数异常也能完成回收。依赖支持嵌套,子依赖结果可在同一请求内缓存复用,避免重复解析。该机制旨在实现声明式协作为 IDE 和文档提供精确信息,以及便于通过 `dependency_overrides` 进行测试替换。实践上,`yield` 之后仅做资源关闭等轻量收尾,嵌套层数宜控制在三层以内,以保持可维护性。
2026-06-23
|
14
|
0
|
0
