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内部依赖关系

9 回复

生成 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 路由可视化项目,

回到顶部