最近 Apifox 这款国产API管理工具受到了一众研发人员的好评,免费是其中一个缘由!但是一直使用着Swagger,Apifox比Swagger更好用吗?有必要更换软件吗!正所谓实践出真知,我将会对 Swagger 和 Apifox 的功能进行深度分析对比,这款国产API管理工具是否好用。
作为一名开发者,日常开发过程中除了写业务代码,前后端联调更是重要的一环。但这一环却往往是整个开发过程中最繁琐也最累人的一环。任谁都想早点下班,然而提升联调效率并不是个纯技术相关的问题,而是需要有良好工作流程的问题。
一、功能定位对比
(看看哪款工具才是接口文档工具的王者。)
1.swagger 的功能定位
swagger 是一款 API 文档工具,比较常用的是它的开源工具 swagger ui,swagger editor。 swagger editor接口设计、生成代码,swagger ui生成接口文档,可以分享给他人,在线查看接口文档。
2.Apifox 的功能定位
Apifox 定位: Apifox=Postman+Swagger+mock+Jmeter,是一款集 API设计,接口文档管理、代码生成、API 调试、API mock,API 自动化为一体的接口一站式协作平台。
也就是说,它比 swagger 的的功能要更加广泛和齐全,不仅通过可视化界面设计接口生成接口文档和项目代码,还打通了接口数据的协作流程,一套接口数据,设计出来可以给前端、测试使用,减少了再不同系统间切换、导入导出数据、更新维护的麻烦。
这正是解决了整个开发过程中最繁琐也最累人的一环!
二.功能对比(接口设计功能对比)
API管理的痛点
API接口在设计时往往需要编写大量的文档,而且编写完成之后还会经常改动,文档编写维护工作量大。
接口文档编写好后,实际的代码可能会与文档有出入,这个时候文档是不准确的,文档与代码保持修改同步也是一个很大的工作量。随着接口版本的迭代,接口文档需要同步更新。有些时候接口会成为对接双方的开发进度瓶颈,因为接口调用会有依赖,类似app的项目,前端会需要调用后端接口,接口功能不实现会影响前端开发进度。接口开发完以后,做接口测试不方便,特别是接口数量多,参数复杂的情况,测试工作量大。接口在版本迭代后,旧的接口常常需要做回归测试,这个工作量也是非常大的。
swagger的接口设计功能
通过编写代码来生成 API 文档,需要记忆 swagger 的常用注解规则,右侧能实时预览生成的接口文档;
生成的接口文档里能够看出层级结构,但在左侧的编辑区却没有明显的目录层次,因此一般只能支持简单的单个接口文档的编写,复杂的项目会变得容易出错和难以维护。
Apifox的接口设计功能
使用 Apifox 来设计接口,完全是可视化界面,不需要学一套专门的注解方法,只需要专注设计业务接口的规则和内容就可以,
直接填写请求方法,路径,请求参数和响应参数、保存完毕就能生成一份接口文档。
它拥有项目/模块等不同层级的目录结构来存储接口文档,适合项目层级的接口文档编写开发。单个接口的设计就是填写参数,然后保存。 多个接口可以保存到一个文件夹下,不同的模块归类到不同的文件层级中。
3.调试Api文档功能对比
调试Api文档的痛点
当我们使用了一些由别人实现的API接口时,该如何进行调试呢?当我们使用的API返回一些意想不到错误时,该怎么办呢?这个问题可能是由于用户输入或者API本身,或者其他完全无关的内容等引起的。调试是我们进行定位并修复由单个API调用或一系列调用引发的问题。通常,我们可以调试我们不能完全把握的代码,从而可以清晰地了解该部分代码。我们在使用API时,除了遇到意想不到的异常外,还有可能在解析输出或传递变量时出错。
swagger的调试功能
swagger ui 提供了简单的调试功能,填写参数、点击按钮可以发起接口请求。
除此之外没有其他复杂的功能可以辅助调试,但实际中有很多复杂的调试需求,需要写调试脚本,连接数据库,写测试断言等,这里均无法支持。
因此大多数程序员如果使用swagger 写文档,后期还需要将接口数据导入到其他调试工具调试。
Apifox的调试功能
Apifox在这个点我个人感觉创新是比较多的,它把Postman里需要写脚本的功能都封装成了可视化界面,直接通过填写参数的方式去调试。
可视化界面其实会大大降低操作的门槛,写脚本的话至少需要会一些js语言,而像现在这样填参数的方式,不会脚本语言也能调试。
不过,如果你想要做一些复杂的调试,它还是保留了脚本调试功能的。 脚本调试支持第三方js类库,支持外部脚本和语言。
4.导入导出接口 功能对比
swagger 的导入导出功能
swagger 支持导入符合open api 规范的接口数据文档。 支持导出 yaml 或者 json 格式的数据。
Apifox 的导入导出功能
- Apifox 导出项目
如果想要将项目迁移到新的接口管理工具中,需要用到项目的整体导出功能。在Apifox中,支持导出swagger格式、html、md、apifox 格式的项目数据,以供导入其他工具中使用。
2. Apifox 导入项目 Apifox 支持项目无痛迁移到该软件,目前除了支持swagger 、postman格式的,还支持多个国产的开源工具的数据格式,如RAP 和yapi等。
5. 价格对比
swagger 的价格
swagger 分为开源的 swagger editor 和swagger ui,以及 整合为一体的swagger hub,swagger hub的免费版本使用人数限制1人,只能添加3个APIs,不支持协同功能。 付费版本价格见下表,还是非常高昂的价格:
Apifox 的价格
从收费模式上看,Apifox是公网版本不收费,私有化部署收费。
总结,整体体验下来,类似Swagger的工具,只能说Apifox更全面,让我找到一个合适的技术工具提高我们的效率。可以让我们从文档书写和接口对接工作中解脱出来,更加专注于代码的书写和业务逻辑的梳理,被接口对接烦透了的你不妨尝试一下,你会发现它像一个保姆一样为你做了所有该做的事情。
6.其他功能
API Hub
作为一个coder,最终的就是进行分享,Apifox官网的API Hub可以让我们方便的查看别人的项目进行学习,同时如果我们做了一份自认为完美的文档也可以进行分享,分享才能使我们更加的强大。可以增强我们的输出能力。
7.总结
Apifox 的整体功能比 swagger 丰富,支持一整个团队的协作,而且免费国产软件。类似swagger的工具,只能说Apifox更全面,让我找到一个合适的技术工具提高我们的效率。Apifox比Swagger更好用吗?这个问题大家都心里有数吧!