你还在用swagger?试试这款api工具,开发效率可以快10倍,大大提升生产力!...(代码片段)

Java技术栈 Java技术栈     2022-12-05     406

关键词:

作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的非常出色。但是在整个软件开发过程中,API 调试只是其中的一部分,还有很多事情 Postman 无法完成,或者无法高效完成,比如:API 文档定义、API Mock、API 自动化测试等等。Apifox 就是为了解决这个问题而生的。

接口管理现状

一、常用解决方案

  1. 使用 Swagger 管理 API 文档

  2. 使用 Postman 调试 API

  3. 使用 RAP 等工具 Mock API 数据

  4. 使用 JMeter 做 API 自动化测试

二、存在的问题

维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,更大的问题是多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。

  1. 开发人员在 Swagger 定义好文档后,接口调试的时候还需要去 Postman 再定义一遍。

  2. 前端开发 Mock 数据的时候又要去 RAP 定义一遍,还需要手动设置 Mock 规则。

  3. 测试人员需要去 JMeter 再定义一遍。

  4. 前端根据 RAP Mock 出来的数据开发完,后端根据 Swagger 定义的接口文档开发完,各自都试测试通过了,本以为可以马上上线,结果一对接发现各种问题:

  • 开发过程中接口变更了,只修改了 Swagger,但是没有及时同步修改 RAP。

  • 后端开发的接口数据类型和文档不一致,肉眼难以发现问题。

同样,测试在 JMeter 写好的测试用例,真正运行的时候也会发现各种不一致。

时间久了,各种不一致会越来越严重。

Apifox 解决方案

一、如何解决这些问题

1、Apifox 定位

Apifox = Postman + Swagger + Mock + JMeter

Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。

通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!

2、Apifox 宗旨

节省研发团队的每一分钟!

3、Apifox 功能

  1. 接口设计:Apifox 接口文档遵循 OpenApi 3.0 (原 Swagger)、JSON Schema 规范的同时,提供了非常好用的可视化文档管理功能,零学习成本,非常高效。并且支持在线分享接口文档。

  2. 数据模型:可复用的数据结构,定义接口返回数据结构请求参数数据结构(仅 JSON 和 XML 模式)时可直接引用。支持模型直接嵌套引用,直接 JSON/XML 智能导入,支持 oneOf、allOf 等高级组合模式。

  3. 接口调试:Postman 有的功能,比如环境变量、前置/后置脚本、Cookie/Session 全局共享 等功能,Apifox 都有,并且比 Postman 更高效好用。接口运行完之后点击保存为用例按钮,即可生成接口用例,后续可直接运行接口用例,无需再输入参数,非常方便。自定义脚本 100% 兼容 Postman 语法,并且支持运行 javascript、java、python、php、js、BeanShell、go、shell、ruby、lua 等各种语言代码。

  4. 接口用例:通常一个接口会有多种情况用例,比如参数正确用例、参数错误用例、数据为空用例、不同数据状态用例等等。运行接口用例时会自动校验数据正确性,用接口用例来调试接口非常高效。

  5. 接口数据 Mock:内置 Mock.js 规则引擎,非常方便 mock 出各种数据,并且可以在定义数据结构的同时写好 mock 规则。支持添加“期望”,根据请求参数返回不同 mock 数据。最重要的是 Apifox 零配置 即可 Mock 出非常人性化的数据,具体在本文后面介绍。

  6. 数据库操作:支持读取数据库数据,作为接口请求参数使用。支持读取数据库数据,用来校验(断言)接口请求是否成功。

  7. 接口自动化测试:提供接口集合测试,可以通过选择接口(或接口用例)快速创建测试集。目前接口自动化测试更多功能还在开发中,敬请期待!目标是:JMeter 有的功能基本都会有,并且要更好用。

  8. 快捷调试:类似 Postman 的接口调试方式,主要用途为临时调试一些无需文档化的接口,无需提前定义接口即可快速调试。

  9. 代码生成:根据接口及数据数据模型定义,系统自动生成接口请求代码前端业务代码后端业务代码

  10. 团队协作:Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求。

二、Apifox 做的不仅仅是数据打通

如果你认为 Apifox 只做了数据打通,来提升研发团队的效率,那就错了。Apifox 还做了非常多的创新,来提升开发人员的效率。

1、接口支持“用例管理”

通常一个接口会有多种情况用例,比如 正确用例 参数错误用例 数据为空用例 不同数据状态用例。定义接口的时候定义好这些不同状态的用例,接口调试的时候直接运行,非常高效。

2、“数据模型”定义、引用

可以独立定义数据模型,接口定义时可以直接引用数据模型,数据模型之间也可以相互引用。同样的数据结构,只需要定义一次即可多处使用;修改的时候只需要修改一处,多处实时更新,避免不一致。

3、调试时“自动校验”数据结构

使用 Apifox 调试接口的时候,系统会根据接口文档里的定义,自动校验返回的数据结构是否正确,无需通过肉眼识别,也无需手动写断言脚本检测,非常高效!

Apifox 自动校验数据结构

4、“可视化”设置断言

设置断言:

Apifox 设置断言

运行后,查看断言结果:

5、“可视化”设置提取变量

6、支持数据库操作

7、“零配置”Mock 出非常人性化的数据

先放一张图对比下 Apifox 和其他同类工具 零配置 mock 出来的数据效果:

Apifox Mock 数据结果对比同类工具

可以看出 Apifox 零配置 Mock 出来的数据和真实情况是非常接近的,前端开发可以直接使用,而无需再手动写 mock 规则。

Apifox 如何做到高效率零配置生成非常人性化的 mock 数据

  1. Apifox 根据接口定义里的数据结构、数据类型,自动生成 mock 规则。

  2. Apifox 内置智能 mock 规则库,根据字段名、字段数据类型,智能优化自动生成的 mock 规则。如:名称包含字符串imagestring类型字段,自动 mock 出一个图片地址 URL;包含字符串timestring类型字段,自动 mock 出一个时间字符串;包含字符串citystring类型字段,自动 mock 出一个城市名。

  3. Apifox 根据内置规则,可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。

  4. 除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用 正则表达式通配符 来匹配字段名自定义 mock 规则。

8、生成在线接口文档

Apifox 项目可“在线分享” API 文档,分享出去的 API 文档可设置为公开或需要密码访问,非常方便与外部团队协作。

体验地址:https://www.apipark.cn/s/ce387612-cfdb-478a-b604-b96d1dbc511b/http/5041285

9、代码自动生成

根据接口模型定义,自动生成各种语言/框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等)的业务代码(如 Model、Controller、单元测试代码等)和接口请求代码。目前 Apifox 支持 130 种语言及框架的代码自动生成。

更重要的是:你可以通过自定义代码模板来生成符合自己团队的架构规范的代码,满足各种个性化的需求。

10、导入、导出

  1. 支持导出 OpenApi (Swagger)MarkdownHtml 等数据格式,因为可以导出OpenApi格式数据,所以你可以利用 OpenApi (Swagger) 丰富的生态工具完成各种接口相关的事情。

  2. 支持导入 OpenApi (Swagger)PostmanHARRAMLRAP2YApiEolinkerNEIDOCleverApiPostApizzaShowDocAPI BlueprintI/O DocsWADLGoogle Discovery等数据格式,方便旧项目迁移。

三、后续功能规划

  1. 发布 Apifox 网页版。

  2. 接口性能测试支持(类似 JMeter)。

  3. 支持插件市场,可以自己开发插件。

  4. 开放 Apifox API,允许开发者通过 API 调用 Apifox 的功能。

  5. 支持更多接口协议,如GraphQLgRPCwebsocket等。

  6. 支持离线使用,项目可选择在线同步(团队协作)还是仅本地存储(单机离线使用)。

四、更多 Apifox 功能截图

接口调试
Apifox 多种主题色可选

五、 Apifox 交流群

扫二维码加微信,拉你进官方微信群:


六、 Apifox 下载地址

请访问 Apifox 官网下载:https://www.apifox.cn/a1javajsz

你还在用swagger?试试这几款在线文档生成神器!!

点击关注公众号,Java干货及时送达前言最近公司打算做一个openapi开放平台,让我找一款好用的在线文档生成工具,具体要求如下:必须是开源的能够实时生成在线文档支持全文搜索支持在线调试功能界面优美说... 查看详情

扔掉swagger,试试这款功能强大,零注解侵入的api接口文档生成工具!

点击关注公众号,实用技术文章及时了解介绍smart-doc是一款同时支持JAVARESTAPI和ApacheDubboRPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型定义推导的理念,完全基于接口源码来分析生成接口文档,不采... 查看详情

还在使用swagger吗,快来试试这款强大的在线api工具

将开源小分队设为星标 精品文章第一时间读大家好,我是可爱又机灵的开源小妹。今天给大家分享一个非常好用的在线文档工具:Knife4j背景现在分工越来越明确,做项目也都是前后端分离,这样就和前端沟通越... 查看详情

python程序员,你还在用selenium吗?试试playwright吧(代码片段)

文章目录⛳️实战场景⛳️实战操作⛳️实战场景本篇博客为大家介绍一款新的自动化测试工具,效果类似selenium,但是这个模块年轻。模块名称为playwright-python,微软开源的,是针对Python语言的纯自动化工具࿰... 查看详情

还在用swagger?我推荐这款零代码侵入的接口管理神器!(代码片段)

静态的Swagger们跟不上频繁变更的代码“为什么改了这个没告诉我”,“实际功能和文档上说的不一样啊”。这些话大家做开发的想必耳朵都听出老茧了。真不是故意的,有时候任务比较急,就先改了代码,想着以后再... 查看详情

取代postman+swagger这款神器功能更强大,界面更炫酷(代码片段)

...决这个问题而生的。接口管理现状一、常用解决方案使用Swagger管理API文档使用Postman调试API使用MockJs等工具MockAPI数据使用JMeter做API自动化测试二、存在的问题维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作... 查看详情

你还在用分页?试试mybatis流式查询,真心强大!

来源:sf.gg/a/1190000022478915基本概念MyBatis流式查询接口但构建Cursor的过程不简单方案一:SqlSessionFactory方案二:TransactionTemplate方案三:@Transactional注解基本概念流式查询 指的是查询成功后不是返回一个集合而是... 查看详情

你还在用迭代器处理集合吗?试试stream,真香!(代码片段)

首先给大家看一段代码,让大家直观感受下Java7和Java8遍历处理集合的不同Dish是一个菜肴对象,calories属性表示该菜品的卡路里值,name则是菜品的名称。我们需要过滤出卡路里小于400、然后根据卡路里值升序、接着拿到他们的名... 查看详情

取代postman+swagger!这款神器功能更强大,界面更炫酷!(代码片段)

...对大家有所帮助! Apifox简介Apifox的定位是Postman+Swagger+Mock+JMeter,具有API文档管理、API调试、APIMock、API自动化测试等功能。可以通过一种工具解决之前使用多种工具的数据同步问题。高效、及时、准确!安装... 查看详情

都2021年了,你还在用kafka?快试试这个全新平台吧

点击关注公众号,回复“1024”获取2TB学习资源!最近这个ApachePulsar消息中间件非常的火,号称下一代消息中件,今天,就一起来看看它到底有多牛逼?概述ApachePulsar是一个使用ApacheBookkeeper提供持久化的pub/... 查看详情

❤️你还在用visio画图吗?已经落伍啦!快来试试轻量级绘图神器draw.io吧!❤️(代码片段)

引子最近写模块文档,需要绘制一些程序流程示意图,之前一直用word+visio的组合,但是现在都是typora+xmind的轻组合了,所以这次也尝试了一个新的轻量级绘图工具draw.io。文末附上在线绘制网址与windows版下... 查看详情

❤️你还在用visio画图吗?已经落伍啦!快来试试轻量级绘图神器draw.io吧!❤️(代码片段)

引子最近写模块文档,需要绘制一些程序流程示意图,之前一直用word+visio的组合,但是现在都是typora+xmind的轻组合了,所以这次也尝试了一个新的轻量级绘图工具draw.io。文末附上在线绘制网址与windows版下... 查看详情

springboot整合swagger2

SpringBoot整合Swagger2相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。手写Api文档的几个痛点:文档需... 查看详情

还在发愁写api文档?推荐一款阿里腾讯都在用的api管理神器

...憾,没有找到合适的。于是,我们自己实现了一个Postman+Swagger+RAP+JMeter这个工具就是Apifox,经常很长一段时间不断更新迭代后,我们基本上完全实现了最初的设想,几乎完美解决了最开始遇到的所有问题,在公司内部大受欢迎。... 查看详情

干掉beanutils!试试这款bean自动映射工具,真心强大!!

点击关注公众号,Java干货及时送达开发背景你有没有遇到过这样的开发场景?服务通过接口对外提供数据,或者服务之间进行数据交互,首先查询数据库并映射成数据对象(XxxDO)。正常情况下,接口... 查看详情

后端开发之swaggerapi开发工具(代码片段)

...量多学一点是一点儿,今天咱们聊聊API开发文档插件swagger。Swagger是一个流行的API开发工具,用于设计、构建、测试和文档化RESTfulAPI。它是一种开放源代码的工具,旨在帮助开发人员更轻松地构建API。本文将介绍Swagge... 查看详情

干掉beanutils!试试这款bean自动映射工具,真心强大!!(代码片段)

开发背景你有没有遇到过这样的开发场景?服务通过接口对外提供数据,或者服务之间进行数据交互,首先查询数据库并映射成数据对象(XxxDO)。正常情况下,接口是不允许直接以数据库数据对象XxxDO形... 查看详情

swagger---api接口文档自动生成工具

...响开发进度和开发质量。  因此,在实际开发中,常用Swagger-API接口文档自动生成工具,帮助项目自动生成和维护接口文档。  Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,它具有以... 查看详情