以下是一个使用 yield 的异步依赖项函数的示例:
from fastapi import Depends, FastAPI, HTTPException
app = FastAPI()
# 异步依赖项函数
async def get_token():
# 在实际应用中,这里可以是异步的操作,比如异步地从数据库中获取令牌
return "fake-async-token"
# 路径操作
@app.get("/items/")
async def read_items(token: str = Depends(get_token)):
return {"token": token}
在这个例子中,get_token 是一个异步的依赖项函数。它使用 async def 声明,因为它可能执行异步操作。在实际应用中,这个函数可能会与数据库或其他异步服务进行交互。
当你在路径操作中使用 Depends 时,FastAPI 会自动检测到依赖项函数是否是异步的。如果是异步的,FastAPI 将在运行时使用 await 来等待依赖项函数的执行。在这个例子中,token 参数将包含 get_token 函数的返回值。
使用 yield 的异步依赖项函数还允许你在依赖项执行的前后添加一些逻辑。例如,你可以在 yield 之前执行一些初始化操作,而在 yield 之后执行清理操作。这种灵活性对于一些场景非常有用。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7389/FastAPI