Python中如何使用fastapi-router-viz可视化API内部依赖关系
https://github.com/allmonday/fastapi-router-viz
对于遵循 er 模型来构建视图数据的项目,fastapi-router-viz 可以为了解 api 返回类型间的关系提供快速,直接,可交互的图效果。
可以通过点击节点高亮全部上下游链路, 了解 pydantic class 的上下游依赖情况
alt 点击查看节点的源代码,或者直接在 vscode 中打开
根据 class + field name 来精准定位数据被哪些页面/ 接口使用
Python中如何使用fastapi-router-viz可视化API内部依赖关系
生成 mermaid-js 吧,方便放到 readme 里
这个需求很实用,fastapi-router-viz 确实能帮你直观地看到API路由和依赖关系。
首先安装这个库:
pip install fastapi-router-viz
然后创建一个简单的FastAPI应用来演示:
from fastapi import FastAPI, Depends
from fastapi_router_viz import VizAPIRouter
# 创建带可视化功能的router
router = VizAPIRouter()
# 定义一些依赖函数
def get_db():
"""模拟数据库连接"""
return {"db": "connected"}
def get_current_user(db: dict = Depends(get_db)):
"""模拟获取当前用户"""
return {"user": "john", "db_status": db}
# 定义路由
@router.get("/items/")
async def read_items(user: dict = Depends(get_current_user)):
return {"items": ["item1", "item2"], "user": user}
@router.get("/items/{item_id}")
async def read_item(item_id: int, db: dict = Depends(get_db)):
return {"item_id": item_id, "db": db}
# 创建FastAPI应用并包含router
app = FastAPI()
app.include_router(router)
# 添加可视化端点
router.add_viz_route(app)
运行应用后访问 http://localhost:8000/viz 就能看到交互式的路由依赖图。图中会清晰显示:
- 所有路由端点(/items/, /items/{item_id})
- 依赖关系链(比如 /items/ → get_current_user → get_db)
- 每个节点的详细信息
这个工具特别适合大型项目,能帮你快速理解复杂的依赖注入关系。如果你需要导出图表,它还支持生成PNG或SVG格式。
一句话建议:用这个可视化工具能让你对API依赖关系一目了然。
支持生成 dot 文件, 转换成 mermaid 语法的话要找一些 dot2mermaid 的小工具
我觉得 fastapi 没 litestar 好用
fastapi 现在迭代进度明显减慢了, 确实相比之下 litestar 功能相当丰富
回头如果有需要, 去移植个 litestar-router-viz ~
项目名称让人误以为是 fastapi 路由可视化
确实, 当局者迷了
改了个名字:fastapi-voyager
哪我问一下 ,有没有 fastapi 路由可视化项目,

