FastAPI
提供了简单易用,但功能强大的依赖注入系统。这个依赖系统设计的简单易用,可以让开发人员轻松地把组件集成至FastAPI
。
编程中的「依赖注入」是声明代码(本文中为路径操作函数 )运行所需的,或要使用的「依赖」的一种方式。然后,由系统(本文中为 FastAPI
)负责执行任意需要的逻辑,为代码提供这些依赖(「注入」依赖项)。依赖注入常用于以下场景:
- 共享业务逻辑(复用相同的代码逻辑)
- 共享数据库连接
- 实现安全、验证、角色权限
- 等……
上述场景均可以使用依赖注入,将代码重复最小化
简单使用
要使用依赖项,我们就不得不使用到Depends
函数,使用如下:
from typing import Dict
from fastapi import FastAPI
from fastapi import Query
from fastapi import Depends
app = FastAPI()
async def paging_params(per_page: int = Query(description='数量'),
page: int = Query(description='页码')) -> Dict[str, int]:
return dict(per_page=per_page, page=page)
@app.get("/teachers")
async def teacher_list(params: dict = Depends(paging_params)):
return params
@app.get("/students")
async def student_list(params: dict = Depends(paging_params)):
return params