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依赖项将会在所有的路径操作中进行应用。

作者:iveBoy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/shenjianping/p/14864393.html