【FastAPI】Depends 依赖注入(二)Sub-Dependencies 子依赖

说明

FastAPI 支持子依赖,就是能按照层级调用依赖,可以用来拆分业务逻辑

子依赖

from fastapi import FastAPI, Depends
from fastapi.exceptions import HTTPException
from typing import Optional
import uvicorn

app = FastAPI()

# 子依赖 验证 token
async def check_token(token: str):
    if token != '123456':
        return False
    return True

# 接口依赖
async def check_token_key(token=Depends(check_token), key: Optional[str] = None):
    if not token:
        raise HTTPException(detail='token error', status_code=400)
    return key

@app.get('/sub_depends')
async def fun(key=Depends(check_token_key)):
    return key

if __name__ == '__main__':
    uvicorn.run(app)

mark

执行流程

mark

优化 use_cache 参数

use_cache = True 表示多个依赖有一个共同的子依赖时,每次请求只会调用依赖一次,然后从缓存中获取

@app.get('/sub_depends')
async def fun(key=Depends(check_token_key,use_cache=True)):
    return key
发表评论 / Comment

用心评论~