作为后端,被前端催着要接口已成为工作中的添堵日常;而作为前端,联调时发现自己Mock的数据和后端对不上,更是令人崩溃。
针对于此,在后端还未提供真实接口的情况下,先拿到一份模拟响应的数据结构,就显得非常重要,也就是我们所说的接口文档。
那么如何快速写出清晰规范,又能实时更新的动态接口文档呢?Apipost 7梳理并规范了研发环节的工作流程,关于接口文档的产出,我们主要在“API设计”和“API调试”中完成。
API设计+智能Mock期望
1、API设计
我们可以在“API设计”中设计并填写接口的基本信息,包括接口请求方式、URL、请求参数以及返回的响应数据期望等,与API调试模块共用同一份数据源。
mock响应期望支持json-schema和mock.js模式:
Apipost 7版本还支持了Digest auth、OAuth 1.0、Hawk Authentication、AWS Signature、NTML Authentication、Akamai EdgeGrid六种认证方式。
当想要分享mock URL时,Apipost支持本地和云端两种方式分享,我们可以自定义是否要分享在云服务上进行的mock,灵活保证数据安全。
在同一个接口里,由于我们对不同场景下返回的数据结构期望不同,可以通过设置多个期望的方式,来满足这个需求。Apipost支持自定义期望的名称、状态码、内容格式(JSON、XML、 HTML、 Raw、 Binary)、触发条件以及在此基础上的一系列高级设置。
设计好期望后,会有一个期望预览,同时支持刷新生成新的数据,可以说是非常灵活方便了。
2、智能Mock期望
设置好一堆期望后,下一步就该一个一个选期望、一个一个开始校验了吧?当然你也可以这样,但Apipost愿意做的更进一步,最大程度提升我们的工作效率,于是就有了“智能期望”。
我们可以在智能期望中填写一些触发条件,开启后,Apipost会根据已设置的触发条件,自动匹配旗下的参数判断规则,若满足条件,则会启用预设的期望。
3、预览/编辑/分享文档
我们在API设计模块所设置的全部内容,都可以自动生成一篇接口文档,不仅如此,Apipost还支持了文档编辑功能,最大程度保证交付出去的文档,就是你心中所想的样子。
在分享的时候,我们还可以自定义文档的权限和有效期,并且支持内网分享,保证数据安全。
打开分享文档,接口信息展示一目了然。
API调试+校验响应结果
下面这个页面是不是很眼熟?Apipost 7保留了6版本的基本分区,老用户升级后不会觉得陌生,只会发现想要的功能已经都在里面了。
1、请求区
请求区相比6版本并未做太大改变。相对于API设计而言增加了预执行脚本和后执行脚本,可以自定义选择先执行或者后执行。
2、响应区
响应区内默认返回实时响应结果,点击发送按钮后,如果有数据返回,则会显示返回数据,响应时间,响应码,Cookie等。我们可以选择在建立好的期望中生成示例,也可以直接新建一个示例。
看到这里有的用户就会问:“如果我只想新建一个示例,还非得去API设计里先新建一个期望吗?”
答案是当然不用啦,我们在API调试模块下新建一个示例,该示例与API设计中的期望是一一对应关系,每新建一个示例头,API设计模块中都会自动新建一个与之对应的期望,不用我们亲手设置,Apipost都给自动生成好。
3、校验响应结果
当我们想要校验在API设计中建立的期望时,可以手动选择校验,也可以通过开启“智能期望”,来自动匹配符合触发条件的期望。开启校验后,Apipost将以我们在API设计页面内填写的响应期望为判断标准,对比API调试模块中请求接口所获得的响应内容,由此进行对参数值的类型以及高级设置内容等方面进行校验。
如期望内容与响应内容一致,则会提示校验通过,即该接口返回的响应内容符合期望,当两者不一致时,会提示具体错误信息并标明具体位置,方便我们及时定位问题。
API设计与API调试的关系
“API设计”用来设计接口文档,我们可以在里面设计接口基本信息以及建立期望,“API调试”用于调试接口和校验返回内容是否符合期望,两者存在下列三种关系:
1、互不制约
我们可以先去API设计来设计API,也可以直接进入API调试进行接口调试,不存在某一模块的内容没有手动写全,另一个模块没法进行的问题。
2、互相覆盖
在API设计中保存好的接口信息,会同步到API调试模块。同理,当API调试模块的内容有改动并保存后,也会自动同步到API设计模块,不必反复修改,保证分享出去的文档一致。
3、灵活联动
API调试中的响应示例,与API设计中的期望是一一对应关系,每新建一个示例头,都会自动新建一个与之对应的期望。同理,在API设计中建立的响应期望,可以被引用到API调试的响应示例中,并可以通过校验功能,判断该响应期望的响应结果是否符合预期。
看到这里,是不是感觉Apipost 7版本的更新算得上一次质的飞跃?Apipost 7不仅能让开发人员实现真正意义上的“代码未写,文档先行”,还能让测试人员实现无需敲代码、全程可视化的自动化测试,让团队成员更高效的协作、更准时的下班。