27 中间件与依赖注入之全局依赖与路径依赖
在前面的章节中,我们讨论了 FastAPI
中 依赖注入的基本用法
。在这一篇中,我们将深入探讨全局依赖与路径依赖的概念以及如何在 FastAPI
中实现它们。这将对我们后续的数据库操作提供良好的基础。
依赖注入的概念
在 FastAPI
中,依赖注入的核心思想是将一个部分的功能(即依赖)传递给其他部分,而不是在每个部分中重复实现。这可以帮助我们保持代码的整洁和可维护性。全局依赖和路径依赖都是依赖注入的一种实现方式。
全局依赖
全局依赖是指在整个应用中都可以使用的依赖。无论哪个路径调用,都会自动使用这些依赖。
实现全局依赖
在 FastAPI
中,我们可以通过 app.dependency_overrides
来实现全局依赖。以下是一个示例:
1 | from fastapi import FastAPI, Depends, HTTPException |
在这个示例中,无论何时调用根路径 /
,都会自动使用 get_query_param
的全局依赖。在这个例子中,返回的消息将始终为 "全局依赖注入的查询参数"
。
路径依赖
路径依赖是指仅在特定路径中使用的依赖。可以根据不同的路径定义不同的依赖,允许更多的灵活性。
实现路径依赖
我们可以在 path operation
函数中使用依赖注入,轻松实现路径依赖。以下是一个示例:
1 | from fastapi import FastAPI, Depends |
在这个示例中,get_user
依赖仅在 GET /users/{user_id}
路径中使用。我们可以看到,这种方式允许我们为每个路径定义特定的依赖。
小结
在 FastAPI
中,全局依赖和路径依赖是非常有用的功能,帮助我们实现灵活且可重用的代码结构。全局依赖适合在整个应用中使用的通用功能,而路径依赖则适合于特定路径且有可能不同的任务或逻辑。通过合理地利用这两种依赖注入的方式,我们能够编写出清晰且易于维护的 API。
在下一节中,我们将探索如何使用 SQLAlchemy
来连接数据库,这将使我们的应用变得更加强大,能够持久化数据。希望通过这些内容,你能够更加熟悉 FastAPI
中的依赖注入概念,为后续的数据库操作打下坚实的基础。
27 中间件与依赖注入之全局依赖与路径依赖