# 架构师深夜把玩 ApiPost,分享细腻的体验!
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!😄
# 一、前言
我把需求,提给负责人😂
你知道 GitHub、Gitee,那你知道 Gitcode
吗?你知道 Postman、Swagger 那你知道 ApiPost
吗?我知道,因为这2个产品的负责人都是我的伙伴,有什么其他产品不能满足的需求咋办,我都提给我认识的负责人。你看我就稀罕
你做这个玩意,我这一堆的粉丝伙伴都在用,你把这个需求开发了吧。PS:给别人加需求的感觉,还真挺爽!当然我提的也都是正经需求。
两个产品用了也1年多了,嗯两个产品负责人也“被我用”
了1年多了,gitcode 越来越丝滑、ApiPost 越来越细腻。对于代码库的使用大家已经非常熟悉了,毕竟带着粉丝做的实战项目《SpringBoot 中间件设计和开发》、《Lottery 抽奖系统 - 基于领域驱动设计的四层架构实践》也都是基于这套代码库维护的,但在 API 工具的使用上一直是小傅哥自己折腾的比较多,还没有怎么告诉大家这个细腻的 ApiPost 都提供了什么样的舒服的功能。好东西还是不好藏着掖着,拿出来show一下!
# 二、什么是 ApiPost
ApiPost 是一款帮助研发和测试人员进行接口开发调试的工具
和服务
,之所以说它是服务,因为它不只是提供基本接口的调用功能,还包括把接口信息push到云平台生成接口文档(支持私有化部署)让大家共同维护和使用,也可以允许协同的方式进行维护接口、调试接口、使用接口,与此同时还集成了接口 Mock、JMeter 的相关功能。PS:其他有需要的功能还可以提给负责人!🤏
- 官网:https://www.apipost.cn/ (opens new window)
- 简述:ApiPost = PostMan + Swagger + Mock 后端、前端、测试,同时在线编辑,内容实时同步
# 三、为啥用 ApiPost
业务提需求 -> 产品定方案 -> 研发做实现 -> 测试验流程
以上四种角色是互联网中一整条产品需求从生产到上线的必要条件,当需求和目标明确后,决定整个需求的交付质量非常重要的一环就是研发到测试,这一个相互制约的角色关系在,只有研发能更靠的提交代码、测试完整的验证流程和细节,才能保证交付质量。
背景(S) :怎么来提高代码质量呢?一般我们都会要求研发在开发代码的过程中对接口必须100%覆盖度
的编写单元测试,验证自己的代码逻辑。如果最终单元测试覆盖度不足,可以由测试拒绝研发提测。
问题(T) :目前很多时候都是研发人员在需求全部完成开发后,人肉的方式把接口信息维护到 CF 文档,再把文档地址交给测试人员进行验证。那如果这个时候发现一些接口问题,反复修改完善代码,就会给测试的工期带来不小的压力,直至导致项目的延期上线。
方案(A) :我们希望在研发开发的代码的过程中,每当完成一个接口的开发,就要把接口信息完善到同一的接口调用服务平台上,这样测试人员就可以很清楚的知道,研发提测了多少个接口、每个接口的单测数据如何、所开发的接口也可以提前让前端介入减少等待时间。
结果(R) :最后在一个需求小组(后端、前端、测试),都统一在一个服务 ApiPost (opens new window) 上维护和完善接口文档,既可以在开发过程中就能进行验证,也可以尽快的知晓开发进度,后端、前端、测试三方的配合也更加紧密,从而提升整个交付质量。
# 四、怎么用 ApiPost
# 1. 下载安装
- 下载地址:https://www.apipost.cn/download.html (opens new window)
- 安装说明:傻白甜式安装,直接点即可,安装完成后可以注册账号,这样就可以支持团队协作啦。
# 2. 接口调试
像使用 PostMan 或者我们自己写的工具一样,接口调试是非常常用的功能,从接口的调用、入参配置、出参展示,使用 ApiPost 可以更细腻舒服的完成这一操作。
- 描述:小傅哥除了使用 ApiPost 做些项目上的使用,也加了一些自己喜欢玩的 API,例如:成语接龙,自从加了这个 API 我成语接龙就没输过 哈哈哈 😂
- 配置:ApiPost 可以支持我们在左侧目录创建你的
接口目录
组,之后在这个组里添加你的接口明细,这样的方式也更加方便我们进行维护接口文档。 - 调用:调用接口的方式就非常简单了,直接选择
发送
即可完成接口调用操作。PS:安装后到这个界面一眼就能看得见。 - 参数:在接口参数配置这块,真的非常舒服,你可以添加任何类型的参数、也可以补充一些脚本信息、还有全局参数和 Mock 数据等,任何你需要的配置都可以在这里找得到。
- 响应:输出的结果就非常赞了,直接就提供了 JSON 格式,还有一些折叠的小图标。PS:真心讨厌那种输出一堆内容,还得复制走转换一遍 JSON 的
这里的一些其他功能,大家可以体验下。
# 3. 全局参数
在 Apipost 的主页上,还有一个全局参数、全局脚本内容的配置,真的细腻。一般我们调用接口测试,有的时候很多接口都是一些共性的入参,如果一个个都去配置就麻烦的一批,有了这样一个东西就舒服多了。
- 配置完成添加的接口,再次请求后台时,就会携带全局定义的请求头过去。
- 还支持全局的 Query 以及 Body,可以把一些不变的请求参数都配置好全局参数,这样会让我们编写接口请求时,非常节省时间。
# 4. 目录参数
这看完全局参数,有人问小傅哥
了,都配置了全局参数太粗了,我这现在项目需求多了,不同的项目里需要的统一参数不一样,咋弄呢?
咋弄?这就是 ApiPost 的细腻,它可以支持你直接在自定义目录下自己建目录维度的默认参数信息,满足你的小情绪。
- 对不同的目录,配置不同的全局参数,即可解决我们的所需要场景。
- 同时,如果你全局、目录、接口,都配置同一个参数,优先级为:
单个接口 > 目录参数 > 全局参数
PS:非常符合人性!
# 5. 接口文档
对于我们实际使用来说,给接口生成描述性文档,包括:接口名称、入参信息、出参信息,这才是非常重要的。
那么 ApiPost 能生成这样的接口文档嘛?自信点,把嘛
去掉,不仅能生成,还可以生成的很漂亮,跟着我的步骤走,如下:
- 补全接口字段信息;类型、描述
- 提取响应接口,只要你调用过接口,点一下这里就可以提取了
- 保存,也可以保存并归档
- 分享文档,点击后会有一个接口链接
文档效果
- 自动生成的文档,包括:接口名称、基本信息、请求参数、响应示例
- 如果你问我,为啥左侧就一个接口呢,因为 ApiPost 支持分享项目、分享目录、分享接口,三种颗粒度来分享,把你最需要给使用者看的信息,交给他。避免乱花渐欲迷人眼,一个接口找一天。
# 6. Mock工具
通常前端与后端在开发前,需要进行研发设计评审,评审期间把需要研发人员提供接口先定义出来,之后前后端就可以一同开发了。避免前端同学只能干巴巴的等着,还怪着急的。
那这样情况咋办,其实也好办,就是前端小伙伴通过后端研发提交的接口信息、描述字段,来 Mock 出接口数据,有了一个简单的数据调用,前端同学就可以与后端同学一起动工了。最后后端在提测后,前端在切换接口进行调试验证,大家一起紧密配合,提高交付质量。
而 ApiPost 就可以让你在没有后端服务的情况下,使用 mock.js 能真实的返回接口数据,目前常用的内置变量支持如下:
- 文档:http://mockjs.com/examples.html (opens new window)
- 说明:你可以打开控制台,随意地试验这些方法。
使用示例
- 你可以通过拿到后端的接口出参定义,在接口返回结果中设置你想要的参数内容。
- 另外你可以使用 mock.js 提供丰富的功能,生成你需要的信息。这样仿佛这个接口就是一个活的接口了,一些随机的内容可以更好的帮助前端同学进行测试验证。
# 7. 流程测试
流程测试是 ApiPost 所提供的一个接口结合测试功能,作为一个完整调用链路的方式进行访问接口,这个时候你可以做一些冒烟测试
,对于测试同学来说,是一个非常赞的功能。
在 ApiPost 中,创建一个流程测试需要如下步骤:
- 新建接口,并添加断言
- 打开流程测试,新建一个流程
- 向流程添加测试接口
- 选择环境,点击开始测试
- 查看返回的测试接口
- 得益于 ApiPost 所提供的细腻的功能分层结构和各类的内置函数,来完成你的需求目标。就像这里你还可以给接口添加
预执行脚本
、后执行脚本
这样的功能。
当然,ApiPost 的功能远不止是这样,还有很多的如:文档编辑、协同服务、团队管理、协作日志等等,都能满足需求的。另外像 RPC 的泛华调用,也会在陆续支持中了,哈哈哈,以后用起来就更爽了!PS:不过有任何不爽的,我都给负责人提需求!