推荐答案
FastAPI 的 APIRouter
是一个用于组织和分组路由的工具。它允许你将相关的路由和端点分组到一个单独的模块中,从而使得代码更加模块化和可维护。通过使用 APIRouter
,你可以在不同的文件中定义路由,然后将这些路由组合到一个主应用中。
本题详细解读
什么是 APIRouter?
APIRouter
是 FastAPI 提供的一个类,用于创建和管理路由。它的作用类似于 Flask 中的 Blueprint
。通过 APIRouter
,你可以将相关的路由组织在一起,形成一个逻辑单元。
如何使用 APIRouter?
创建 APIRouter 实例: 你可以通过实例化
APIRouter
类来创建一个新的路由组。from fastapi import APIRouter router = APIRouter()
定义路由: 在
APIRouter
实例上定义路由,就像在主应用上定义路由一样。@router.get("/items/") def read_items(): return [{"name": "Item 1"}, {"name": "Item 2"}]
将 APIRouter 添加到主应用: 最后,你需要将
APIRouter
实例添加到主应用中。from fastapi import FastAPI app = FastAPI() app.include_router(router)
APIRouter 的优势
- 模块化:通过将路由分组到不同的
APIRouter
实例中,你可以将应用分解为多个模块,每个模块负责不同的功能。 - 可维护性:代码更加清晰,易于维护和扩展。
- 复用性:你可以在不同的项目中复用相同的
APIRouter
实例。
高级用法
前缀:你可以为
APIRouter
设置一个前缀,这样所有的路由都会自动添加这个前缀。router = APIRouter(prefix="/api")
标签:你可以为
APIRouter
设置标签,以便在 API 文档中更好地组织路由。router = APIRouter(tags=["items"])
依赖项:你可以为
APIRouter
设置全局依赖项,这些依赖项会应用到该路由组中的所有路由。router = APIRouter(dependencies=[Depends(get_db)])
通过使用 APIRouter
,你可以更好地组织和管理 FastAPI 应用中的路由,使得代码结构更加清晰和易于维护。