FastAPI 的依赖注入系统是如何工作的?

· 约 3 分钟读完 · 第 8 / 128 章

推荐答案

FastAPI 的依赖注入系统通过 Python 的类型注解和依赖项函数来实现。依赖项函数可以是一个普通的 Python 函数,也可以是异步函数。FastAPI 会自动解析这些依赖项,并在需要时注入到路径操作函数中。依赖注入系统的主要特点包括:

  1. 依赖项声明:通过函数参数的类型注解声明依赖项。
  2. 依赖项解析:FastAPI 自动解析依赖项,并确保它们在路径操作函数执行前被调用。
  3. 依赖项共享:依赖项可以在多个路径操作函数之间共享,避免重复代码。
  4. 依赖项层级:依赖项可以嵌套,形成依赖项层级结构。

本题详细解读

1. 依赖项声明

在 FastAPI 中,依赖项通常通过函数参数的类型注解来声明。例如:

在这个例子中,common_parameters 函数是一个依赖项,它通过 Depends 注入到 read_items 路径操作函数中。

2. 依赖项解析

FastAPI 会自动解析依赖项,并确保它们在路径操作函数执行前被调用。例如,在上面的代码中,common_parameters 函数会在 read_items 函数执行前被调用,并将结果传递给 read_items 函数。

3. 依赖项共享

依赖项可以在多个路径操作函数之间共享。例如:

在这个例子中,common_parameters 依赖项被 read_items 和 read_users 两个路径操作函数共享。

4. 依赖项层级

依赖项可以嵌套,形成依赖项层级结构。例如:

在这个例子中,query_or_cookie_extractor 依赖项依赖于 query_extractor 依赖项,形成了依赖项层级结构。