Fork me on GitHub

FastAPI依赖注入系统系列(五) 全局依赖项

对于某些应用你可能想在全局应用基础上添加依赖项。这与在路径操作装饰器添加依赖项类似,你可以把它们添加到整个FastAPI应用上。

这样,这些依赖项将会应用到所有的路径操作上。

from typing import Optional
from fastapi import FastAPI, Depends, HTTPException


def query_extractor(q: Optional[str] = None):
    if not q:
        raise HTTPException(status_code=400, detail="q is not null")


app = FastAPI(dependencies=[Depends(query_extractor)])


@app.get("/items/")
async def read_items():
    return [{"item": "Portal Gun"}, {"item": "Plumbus"}]


@app.get("/users/")
async def read_users():
    return [{"username": "Rick"}, {"username": "Morty"}]

这样query_extractor依赖项将会在所有的路径操作中进行应用。

 

posted @ 2021-06-08 22:06  iveBoy  阅读(410)  评论(0编辑  收藏  举报
TOP