在一个团队中,通常由多个角色共同协作完成项目的交付,包括业务、产品、设计、前端、后端和测试等。前端与后端的有效沟通依赖于一个统一的接口文档,团队成员在开发之前需要通过该文档约定后端的接口返回内容,确保每个角色都能依据约定来进行开发。然而,通常情况下,接口文档是由后端开发人员编写,维护过程也变得相对繁琐。

最近,我的团队中有伙伴推荐了一款名为 ApiPost 的接口管理工具。经过使用,我觉得它非常出色,因此在此分享给大家。

ApiPost 提供了以下四大功能:接口调试、接口文档生成、Mock 工具以及接口流程测试。

ApiPost = API 接口调试工具 + 接口文档快速生成 + Mock 工具 + 接口流程测试

  • API接口调试工具:类似于 Postman、Postwoman 等。
  • 接口文档快速生成:市面上常见的接口文档工具有 Swaggersmart-doc,但它们对代码的侵入性较强。
  • Mock工具:主要帮助前端根据接口生成相应的数据,例如 RAP 等工具。
  • 接口测试:常见的接口测试工具有 JMeter

值得一提的是,ApiPost 是由国内开发者打造,旨在提供更好用、更符合中文用户需求的接口调试与文档管理工具,这无疑是英语水平不高的开发者们的一大福音。

ApiPost首页

接口调试功能

代码格式化

接口调试是开发阶段中最常用的功能之一,借助 ApiPost 可以进行常规的接口调试。

ApiPost接口调试功能

其中,我特别喜欢的是对返回参数的 Json 格式化功能,类此于 Postman 自带的 Pretty 功能。

Postman Pretty功能

在 ApiPost 中,Json 格式化功能可以通过右侧的三角形按钮对数组元素进行展开或折叠,尤其在面对复杂的数组结构时,这一功能显得尤为强大。

ApiPost Json格式化功能

Postman 相比,后者只能通过复制结果并使用在线工具进行格式化,明显增加了工作负担。

在线Json格式化工具:sojson.com

在线Json格式化示例

全局参数管理

另一个我特别喜欢的功能是 全局参数

在接口测试时,我们经常需要填写相同的鉴权请求头,这一过程在实际项目中会显得十分繁琐。而使用 ApiPost,可以通过全局参数来简化这一过程。

全局参数示例

通过全局参数配置后,以后添加的接口将自动携带已定义的请求头,此外,支持全局的 QueryBody 参数,可以有效减少重复工作,提高效率。

目录参数管理

此外,ApiPost 还支持按项目模块创建不同目录。例如,对于蘑菇博客项目,可以创建两个目录:mogu-adminmogu-web,分别代表后端管理和门户项目。

蘑菇博客地址:gitee.com/moxi159753/mogu_blog_v2

后台管理与门户有不同的鉴权逻辑,因此全局配置 token 不适用两个场景。在这种情况下,我们就需要使用目录参数。

目录参数示例

通过为不同目录配置不同全局参数,我们可以有效地解决上述问题。

当全局参数、目录参数和接口参数同时存在时,ApiPost 会按照以下优先级读取参数值:

单个接口 > 目录参数 > 全局参数

举个例子,假设定义了如下参数:

  • 全局参数:token 值为:698d51a19d8a121ce581499d7b701668 // 最低优先级
  • 目录参数:token 值为:b50e345cc9febd86dedecc551ebcc505 // 次优先级
  • 单接口参数:token 值为:a1a9db893bb8a28ccb665d2af54d9417 // 最高优先级

最终发送的 token 值将是:a1a9db893bb8a28ccb665d2af54d9417。

接口文档快速生成

通过点击分享文档,用户能够方便地获取文档链接。

文档链接分享

复制并打开文档链接即可查看完整的接口文档。

完整接口文档

细心的用户可能会注意到,文档中的请求参数缺少相关字段介绍。此时,可以返回 ApiPost 页面,点击 提取字段和描述 来填写相应字段。

提取字段和描述功能

完成后重新发布,即可看到每个字段的含义。

重新发布后的文档示例

有些用户可能会注意到,返回值示例缺失。这是因为 API POST 不会自动将实时响应数据作为响应示例。需要手动将实时响应结果复制到相应的成功和错误响应示例中。

成功示例更新

完成这些步骤后,文档将包含成功示例。

包含返回值字段描述

通过这种方式,文档的测试和更新变得更加灵活,极大地方便了后端开发者。然而,填写参数描述往往是一项繁琐的任务,尤其是对于包含大量相同名称和意义的参数时,手动输入会显得低效。

为了解决这一问题,我们可以通过 ApiPost 的参数描述库来快速注释本项目中使用的多个参数。

参数描述库功能

在填写某个描述后,该描述会自动保存到 参数描述库,下次匹配到相同名称时,会自动生成对应描述,极大提升工作效率。

Mock 工具

在后端接口尚未开发完成的情况下,前端人员可以通过 Mock 事先编写 API 数据生成规则,以便工具动态生成 API 返回数据,确保页面能够获得所需数据,从而顺利完成前后端的对接工作。通过接口文档的定义,前后端可并行开发,直到最后联调阶段。

ApiPost 的 Mock 工具可以在没有后端程序的情况下真实返回接口数据,利用 ApiPost 实现项目初期的前端效果演示,或者在开发阶段模拟数据,实现前后端分离的工作。

ApiPost 支持直接引用 mock.js 变量,点击下方链接查看 内置 Mock 字段变量

内置 Mock 字段变量

以下是一些常用的内置变量:

  • @guid():随机生成一个 GUID,例如 DEfbBBBf-7A23-a4DB-9BB1-57BCFf5FB5fc
  • @integer(1,100):随机生成一个介于 1 到 100 的整数
  • @datetime('yyyy-MM-dd HH:mm:ss'):返回一个随机日期和时间字符串,例如 1977-11-17 03:50:15
  • @url('http'):生成随机的 http URL
  • @email():生成一个随机邮箱地址
  • @province():随机生成一个中国省份
  • @city():随机生成一个中国城市
  • @title():随机生成一个标题
  • @cname():随机生成一个中文名称
  • @cparagraph():随机生成一段中文文本

现在,我们可以利用这些常见的 Mock 变量来生成一个 Mock 服务。

首先点击 Mock 服务,然后编辑 Mock 模板,实时生成的 Mock 数据 将显示在右侧。

Mock服务界面

点击上方的 复制链接,即可将该接口的 Mock 请求分享给前端开发同事,方便合作开发。

测试流程功能

流程测试允许用户针对一组接口进行综合测试。选择合适的环境后,可以将多个请求作为一系列操作一起运行。流程测试在需要自动化 API 测试时尤其有用。点击开始后,接口集合将并发发出请求,最后根据预设的测试校验模块给出结果。

在 ApiPost 中,创建一个流程测试需要遵循以下步骤:

  • 新建接口,并添加断言
  • 打开流程测试,创建新流程
  • 向流程中添加测试接口
  • 选择环境,点击开始测试
  • 查看返回的测试接口结果

流程测试界面如下所示:

流程测试界面

通过点击接口名称,用户可以查看请求的参数信息及响应内容。

请求和响应参数信息

而且在 ApiPost 中,还提供了许多内置函数,使得处理某些变量变得更加轻松。

内置函数示例

ApiPost 的更多功能等待用户去探索。