解决痛点:理清业务数据之间的依赖和组合逻辑, 解决 bff/业务层中依赖信息不清晰的情况
功能:可视化业务数据类之间的继承和扩展关系, 可交互高亮关系链条, 双击可以显示源代码, 等等
repo: https://github.com/allmonday/fastapi-voyager
live demo: https://www.newsyeah.fun/voyager/
这是我写业务过程中为了方便自己搞清楚数据关系写的一个可视化平台,通过分析 fastapi app.routes 的内容, 将 route -> response model -> other data 之间的关联借助 graphviz 可视化了出来
这样就能比较轻易的了解一个 route 依赖了多少基础业务数据, 或者某个基础业务数据影响了多少业务接口, 这些信息在使用 ide 的时候需要多次代码跳转,还需要在脑海中,或者纸上记录它们的依赖链条, 非常麻烦。
比如一个 project 被多少接口使用到了, 就能在这个工具中通过 search project 来展现所有的下游依赖树。
个人用者觉得非常方便, 所以分享出来。
这个工具的使用前提是有良好的业务模型定义, 并且组合数据的过程也需要遵循业务的 entity relationship model 。 否则效果会比较打折扣。
live demo 里面使用 jira sprint 的业务模型为例子,展示了数据组合的各种情况。
项目还在积极更新中, 如何大家有任何想法和建议欢迎提 issue 。
1
chennqqi 30 天前
强大
|
2
xhawk 28 天前 via Android
的确需要,很强大👍
|
4
tangkikodo OP @xhawk 不客气~~
|
5
tangkikodo OP @xhawk 有兴趣的话可以也试试 pydantic-resolve, voyager 其实是为它量身定做的~
|
6
xhawk 27 天前
@tangkikodo 我主要用于一套 erp 环境里头去, 这个 pydantic-resolve 主要分析 实体间 的, 但是我最主要想分析 service 之间的调用关系. 而且我的方法略微不同, 后端用 python, 前端展示我用的 react-flow. 不过思路的确挺好的, 而且应该可以延展出来挺多有趣的场景. 甚至是后端自动 coding 的逻辑.
|
7
tangkikodo OP @xhawk 嗯,明白了。 我之前也想做 service 调用的分析, 但是复杂度太高了, 后来用 pydantic-resolve 实现了某种平替, 一个 service 返回的类型, 来间接代表这个 service 。 因为后端很多场景本质都是数据的组合, 如果数据类型是清晰的, 那么通过什么具体获取方式反而不是这么重要了。
比如 Project 类型 通过 load_project 来获取, 那么我只要知晓组合的是 Project 或者 subset of Project , 那我其实也间接知道了调用链条。 仅供参考~ |