依赖注入
对于FastAPI,其原生提供了一定的依赖注入能力,可以在Endpoints中使用Depends进行注入。但这种注入级别与管理还是比较初级,很多情况下无法满足复杂依赖注入需求,比如在一个Controller | Service | Repo | Model的架构中,我们可能需要在Controller中注入Service,Service中注入Repo或者其它Service等需求。
也可能在以上环节中注入一些独立的工具依赖。所以在此引入了Dependency_Injector这个库,依赖这个库,可以实现类似于Java Spring的依赖注入功能。
参考文档
Dependency_Injector库的参考文档:Doc
注意点
- 与FastAPI集成时,如果在Endpoint进入注入,仍然要使用FastAPI的Depends来包裹Provide,而不可以单使用Provide。
- Container容器,一旦内容有异步providers,那么整个容器也需要是异步的。