FastAPI 面试题
目录

FastAPI 中如何使用全局依赖?

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

推荐答案

在 FastAPI 中,可以通过将依赖项添加到 FastAPI 实例的 dependencies 参数中来实现全局依赖。全局依赖会应用于所有的路由处理函数。

在这个例子中,global_dependency 函数被添加为全局依赖,所有的路由处理函数都会自动应用这个依赖。

本题详细解读

什么是全局依赖?

全局依赖是指在 FastAPI 应用中,所有路由处理函数都会自动应用的依赖项。这些依赖项通常用于执行一些全局的逻辑,比如身份验证、日志记录、数据库连接等。

如何定义全局依赖?

全局依赖可以通过将依赖项添加到 FastAPI 实例的 dependencies 参数中来定义。dependencies 参数接受一个列表,列表中的每个元素都是一个依赖项。

全局依赖的执行顺序

全局依赖会按照它们在 dependencies 列表中的顺序依次执行。如果一个全局依赖返回了一个值,这个值会被传递给下一个依赖项或路由处理函数。

全局依赖的返回值

全局依赖的返回值可以被路由处理函数使用。如果全局依赖返回了一个值,这个值会被传递给路由处理函数作为参数。

示例代码解析

在示例代码中,global_dependency 函数被定义为一个全局依赖。它返回一个包含消息的字典。这个依赖项被添加到 FastAPI 实例的 dependencies 参数中,因此所有的路由处理函数都会自动应用这个依赖。

在这个例子中,root 路由处理函数会自动应用 global_dependency 依赖项。global_dependency 返回的字典会被传递给 root 函数,尽管在这个例子中 root 函数并没有使用这个返回值。

注意事项

  • 全局依赖会应用于所有的路由处理函数,包括 GET、POST、PUT、DELETE 等所有 HTTP 方法。
  • 如果某个路由处理函数不需要全局依赖,可以通过在该路由处理函数中显式地覆盖全局依赖来实现。
  • 全局依赖的执行顺序可能会影响应用的逻辑,因此在定义全局依赖时需要注意它们的顺序。