深度对比,接口文档工具,swagger 和Apifox 哪个好用
Apifox 和 Swagger 哪个更好用?
最近 Apifox 这款国产 API 管理工具受到了一众研发人员好评,那么它和 swagger 相比有什么区别? Apifox 和 Swagger 哪个好用?有没有必要把正在用的 Swagger 换成 Apifox? 这篇文章我将会对 Swagger 和Apifox 的功能进行深度分析对比,看看哪款工具才是接口文档工具的王者。
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 的的功能要更加广泛和齐全,不仅通过可视化界面设计接口生成接口文档和项目代码,
还打通了接口数据的协作流程,一套接口数据,设计出来可以给前端、测试使用,减少了再不同系统间切换、导入导出数据、更新维护的麻烦。
二.功能对比
1.接口设计功能对比
A.swagger 的接口设计功能
通过编写代码来生成 API 文档,需要记忆 swagger 的常用注解规则,右侧能实时预览生成的接口文档;
生成的接口文档里能够看出层级结构,但在左侧的编辑区却没有明显的目录层次,因此一般只能支持简单的单个接口文档的编写,复杂的项目会变得容易出错和难以维护。
B.Apifox 的接口设计功能
使用 Apifox 来设计接口,完全是可视化界面,不需要学一套专门的注解方法,只需要专注设计业务接口的规则和内容就可以,
直接填写请求方法,路径,请求参数和响应参数、保存完毕就能生成一份接口文档。
它拥有项目/模块等不同层级的目录结构来存储接口文档,适合项目层级的接口文档编写开发。
单个接口的设计就是填写参数,然后保存。 多个接口可以保存到一个文件夹下,不同的模块归类到不同的文件层级中。
2.生成的接口文档对比
A.swagger 的文档功能
生成的接口文档如下:
接口的方法和路径、请求和响应参数都写了,但参数的呈现方式有点不够整洁。
另一个问题是,接口数据的展示和调试功能糅合到了一起,本来显示示例参数的地方,直接以空格代替,用于调试时填参数。
因此它看起来有点混乱的原因,文档不是文档,调试工具不是调试工具。
B.Apifox 的文档功能
Apifox 的接口文档颜值,功能支持上会比 swagger ui 丰富得多。
请求参数和响应参数都以表格的形式罗列出来, 所属的数据类型还以不同颜色的字体高亮出来,是否必填,和示例值也清晰地展示出来,可读性比较高。
另外,在接口文档上也提供了额外的功能支持,可以生成接口的请求代码,也可以点击运行,对接口文档发起调试。
点击运行按钮,会对接口在线发起调试
3.调试api 文档功能对比
A.swagger 的调试功能
swagger ui 提供了简单的调试功能,填写参数、点击按钮可以发起接口请求。
除此之外没有其他复杂的功能可以辅助调试,但实际中有很多复杂的调试需求,需要写调试脚本,连接数据库,写测试断言等,这里均无法支持。
因此大多数程序员如果使用swagger 写文档,后期还需要将接口数据导入到其他调试工具调试。
B. Apifox 的调试功能
Apifox在这个点我个人感觉创新是比较多的,它把Postman里需要写脚本的功能都封装成了可视化界面,直接通过填写参数的方式去调试。
Apifox的调试功能
可视化界面其实会大大降低操作的门槛,写脚本的话至少需要会一些js语言,而像现在这样填参数的方式,不会脚本语言也能调试。
不过,如果你想要做一些复杂的调试,它还是保留了脚本调试功能的。 脚本调试支持第三方js类库,支持外部脚本和语言。
Apifox的自定义脚本功能
另外它还支持响应的数据类型校验和请求参数使用动态值
4.生成代码 功能对比
A.swagger 的生成代码功能
swagger editor 界面支持生成客户端或者服务器端代码,支持80多种框架和语言。
B.Apifox 的生成代码功能
Apifox 支持生成130多种框架和语言,支持生成单独的接口请求代码,数据模型代码,和数据结构代码,支持生成整个项目级别的代码。 而且还支持代码预览。
在分享出来的文档中,也支持生成代码,复制到代码编辑器中使用。
5.导入导出接口 功能对比
A.swagger 的导入导出功能
swagger 支持导入符合open api 规范的接口数据文档。 支持导出 yaml 或者 json 格式的数据。
B.Apifox 的导入导出功能
-
Apifox 导出项目
如果想要将项目迁移到新的接口管理工具中,需要用到项目的整体导出功能。在Apifox中,支持导出swagger格式、html、md、apifox 格式的项目数据,以供导入其他工具中使用。
2. Apifox 导入项目 Apifox 支持项目无痛迁移到该软件,目前除了支持swagger 、postman格式的,还支持多个国产的开源工具的数据格式,如RAP 和yapi等。
6.项目管理与团队协同
A.swagger 的协同功能
swagger 的开源工具 swagger editor 或者swagger ui 等,只能支持单个接口文件的编辑处理,不支持项目级别的多个文件的储存、归档和处理。
swagger 用于项目管理和协同级别的工具是 swagger hub, 它是将以上几个开源工具整合到一起,并且提供了项目管理和团队协作的功能,但swagger hub 是付费软件,而且由于服务器在国外,响应速度非常缓慢,体验不佳。
B.Apifox 的协同功能
Apifox支持项目数据共享,即一套接口,一套项目数据,后端可以用来调试,前端可以mock,测试可以做自动化,且数据的变更会在项目组内实时同步。 支持权限管理,不同成员可设置只读和编辑功能。支持进度管理,接口的开发情况可实时查看,支持邀请其他成员加入项目组。 除此之外,还支持接口以文档的形式分享给第三方。
Apifox的在线分享功能
7. 价格对比
A. swagger 的价格
swagger 分为开源的 swagger editor 和swagger ui,以及 整合为一体的swagger hub,swagger hub的免费版本使用人数限制1人,只能添加3个APIs,不支持协同功能。 付费版本价格见下表,还是非常高昂的价格:
B. Apifox 的价格
Apifox的saas 版本免费,而且没有任何功能限制,没有团队使用人数限制,只有私有化部署收费。 对于常规保密级别的项目, SaaS版本其实已经够用了。
8.Apifox 支持的其他功能
Apifox 除了文档功能非常强大之外,还拥有swagger 不具备的接口mock,接口调试 ,和团队协作功能,因此一个工具,就可以给前端、测试、后端使用。
接口mock功能内置智能引擎,免配置、免写脚本就可以 mock 出高度真实的业务数据;
接口自动化功能,能一键生成测试用例和测试套件,可视化进行接口断言和参数提取,一键运行并生成测试报告。
总结
Apifox 的整体功能比 swagger 丰富,支持一整个团队的协作,而且免费。官网下载地址:https://apifox.cn/a1swaapi
posted on 2022-06-23 18:38 FishInDesert 阅读(2073) 评论(0) 编辑 收藏 举报