FastAPI 中如何使用类作为依赖项?

推荐答案

在 FastAPI 中,可以通过将类作为依赖项注入到路由处理函数中。以下是一个简单的示例:

-- -------------------- ---- -------
---- ------- ------ -------- -------

--- - ---------

----- -------------
    --- -------------- ----- -----
        --------- - ----

    --- ------------
        ------ -------- -------------

--- -------------------- --- - ---------
    ------ ------------------

------------------
----- --- ----------------- ------------ - -------------------------
    ------ ----------- -------------------

在这个示例中,MyDependency 类被用作依赖项,并通过 get_dependency 函数进行实例化。Depends 用于将依赖项注入到路由处理函数 greet 中。

本题详细解读

1. 依赖项类的定义

首先,我们定义了一个类 MyDependency,它有一个构造函数 __init__ 和一个方法 greet。这个类将作为依赖项被注入到路由处理函数中。

2. 依赖项工厂函数

接下来,我们定义了一个工厂函数 get_dependency,它负责创建 MyDependency 的实例。这个函数可以接受参数(如 name),并将这些参数传递给 MyDependency 的构造函数。

3. 依赖项注入

在路由处理函数 greet 中,我们使用 Dependsget_dependency 函数返回的 MyDependency 实例注入到函数参数 dependency 中。

4. 运行效果

当你访问 /greet 路由时,FastAPI 会自动调用 get_dependency 函数来创建 MyDependency 实例,并将其注入到 greet 函数中。最终,greet 函数会返回一个包含问候消息的 JSON 响应。

5. 参数化依赖项

你还可以通过传递参数来定制依赖项的行为。例如,如果你访问 /greet?name=FastAPI,那么 get_dependency 函数会接收到 name="FastAPI",并返回一个包含该名称的 MyDependency 实例。

通过这种方式,你可以灵活地使用类作为依赖项,并根据需要传递参数来定制依赖项的行为。

纠错
反馈