当你只能使用默认参数时,在 FastAPI 中使用依赖注入有什么意义?

问题描述 投票:0回答:1

我不明白使用FastAPI时依赖注入的意义,比如看看这段代码

utils/getInfo.py

def getInfo():
    from app import UserModel
    from app import PostModel
    from app import CommentModel
    from app import Session
    class Models:
        User = UserModel
        Post = PostModel
        Comment = CommentModel
    return (Session, Models)

路由器/somerouter.py

from controllers.somecontroller import route

@router.post("/someroute")
async def handleRoute():
    return await route()

控制器/somecontroller.py

from utils.getInfo import getInfo

async def route(databaseInfo: tuple = getInfo):
    Session, Models = getInfo
    return {"msg": "Route"}

依赖注入在哪里可以让事情变得更容易?怎么样比较好呢?我看到很多 FastAPI 的代码示例都使用它。因此,在让整个 API 使用这种方法之前,我想知道是否应该切换以及原因。因为当前的设置有效。

dependency-injection fastapi
1个回答
0
投票

来自文档

使用依赖注入系统,您还可以告诉FastAPI您的路径操作函数还“依赖于”应在路径操作函数之前执行的其他内容,FastAPI将负责执行它并“注入”结果。

使用您的设置,只有进入

route()
后,您才会获得
handleRoute()
函数的结果。而使用依赖注入,您可以在进入
handleRoute()
之前访问它们。

一个例子是身份验证和授权。您希望在进入路线之前执行此操作。使用您的设置,您最终只会点击身份验证/授权。

© www.soinside.com 2019 - 2024. All rights reserved.