接口联调和管理神器,Pont 1.3 来袭!
Pont 是由阿里巴巴推出的开源数据服务层解决方案。法语含义为“桥”,起于数据中台,面对海量数据形态的挑战,前后端协同中出问题最多环节都是围绕接口,接口定义、联调、变更每一步都可能导致线上问题,因此我们开发了 Pont。自 2018年中开源以来,获得了广泛关注,被称为前后端“接口联调和管理神器”,GitHub已有 2600+ Star。
传统的开发中,通常前后端以文档形式做接口约定,这样会带来3个主要问题:①新增接口时,前后端稍有疏忽,拼错接口地址、拼错了字段名是难免的事情,但联调排查却要花不少成本;②随着项目迭代,接口不断变更,但文档常常疏于维护逐渐失效,遇到问题只能来回翻代码;③已经废弃的接口本可以删除,但需要冒很大风险,于是静静躺在那里,相同或相近接口被重复定义,却没人发现,无效代码越来越多。
为了解决这些问题,我们团队自研并开源了 Pont, Pont 通过对接 Swagger、RAP、DIP 等多种接口平台,获取接口元数据,并根据元数据生成 TypeScript/JavaScript 或其他格式的 API,保证前后端接口的同步,实现接口即代码、接口即文档。
Pont 开源4年以来,服务了阿里集团内部 20+ 团队、外部 300+ 公司,支持个性化的扩展。我们也收集了来自社区的很多需求,过去半年紧锣密鼓开发,今天正式发布 v1.3 版本🎉🎉
Github 地址:github.com/alibaba/pon… (喜欢就给 Star 鼓励一下)
主要变更
- ✍️ 重写官方文档,阅读更便捷
- 🚀 支持多数据源拆分 api-lock.json,文件更小,打开更快
- 🗑️ 丰富的命令行功能,新增扫描废弃接口命令,帮助快速扫描出未使用的接口,移除无效代码
- 🌈 重新设计 VSCode 插件 UI,更聚集、不打扰。新增自定义接口 Snippet,配合插件快速生成接口请求代码
1. ✍️ 重写官方文档,阅读更便捷
我们一直很关注新人的上手成本,因为做了文档重写!重写后的官方文档结构更清晰,阅读更便捷。
2. 🚀 支持多数据源拆分 api-lock
之前版本,在多数据源场景下,所有数据源解析后都会放到同一个 api-lock.json 文件下,导致 api-lock.json 文件体积过大,出现文件打开卡顿、多人协同代码冲突难排查、内容搜索缓慢 等问题。
现在可以通过 pont-config.json 配置 spiltApiLock": true,将不同数据源的 api-lock.json 拆分到对应数据源目录下,减少原来 api-lock.json 的体积。
3. 🗑️ 新增废弃接口扫描
为了解决部分用户和技术团队不使用 vscode-pont 插件,pont 可以通过命令行的方式来提供丰富的服务。
目前 Pont 提供如下命令:
命令 | 描述 |
---|---|
pont start | 一键接入 pont,若本地存在 pont-config.json配置文件,将覆盖重复的配置项。 |
pont check | 校验本地的 pont-lock.json 文件是否缺失、损坏。建议用户在项目中,在 pre-commit 里加上 pont check 命令,以防止在团队协作过程中,pont-lock.json 被误删、解决该文件冲突时被损坏等情况。 |
pont scan | 扫描未使用的接口,在 process.cwd()位置生成并写入 unusedRequests.json 文件,需要配置 scannedRange |
pont ls | 查看所有数据源 |
pont select [dsName] | 切换当前数据源 |
pont diff | 查看远程数据和本地数据在模块、基类上的差异,以作针对性、选择性同步。 |
pont updateMod [modName] | 选择性更新本地的模块 |
pont updateBo [boName] | 选择性更新本地的基类 |
新增扫描废弃接口命令 pont scan ,帮助用户快速扫描出未使用的接口,移除无效代码,减少打包体积。 |
4. 🌈 重新设计 VSCode 插件 UI
原来的底部栏有多个操作按钮,很多用户反馈混乱,新版插件做了重新设计,只保留一个打开 Pont 侧边栏的快捷方式。列表展示加上图标操作的方式,带来了更直观和编辑的操作体验,上手更容易。
在面板列表快捷打开 Pont 的每个配置文件,进行你的定制化配置。
全新的模块和基类展示方式,让你实时掌握后端接口更新情况。挑选需要的模块和基类进行更新,按需生成接口代码。
添加 Pont 日志输出,解决报错后找不到原因的困扰,每个执行步骤都清晰记录。
具体插件使用方法请参考:vscode-pont
通过 pont-config.json 配置 templatePath 重写 CodeGenerator.codeSnippet ,自定义需要生成代码片段。配合插件进行接口快速搜索并生成代码,接口编写从未如此丝滑。具体使用,请参考 pont-config.json 配置项 。
最后
目前 Pont 已经有 自动化 mock 数据、代码懒更新、支持 JS 项目的类型定义、内置模板和自定义模板 等功能。
后续 Pont 将迎来全面升级,使用插件化机制,标准化各环节的插件开发,降低自定义开发成本。提供功能更多更丰富的工具,降低使用成本,提升使用提体验。未来的 Pont 将更加强大 。
转载自:https://juejin.cn/post/7088967184151478308