接口的逻辑已经实现,需要对外发布接口,而发布接口的时候,我们需要能自己简单调试接口。当然,其实自己也可以写简单的代码调试自己的接口,因为其实就是简单的request请求或者curl库读取,调整请求方式get或者post,最多其他的put/delete之类的,然后将data填入里面,就可以完成单个接口的请求。
如果接口不多的情况下,自己直接用请求代码其实也挺方便的,因为可以实时请求获取接口,采用第三方的API调试工具,最大的一个问题是要多开一个软件,会频繁在开发和调试之间进行切换。但是当你接口足够多的时候,比如一般的项目,可能几百个接口的时候,你会发现普通自己请求查看结果的方法肯定行不通,需要一个接口管理工具。早期普遍推荐postMan 不过国内的apifox是仿照postman做的,功能大体差不多。这里以apifox为模板进行API的相关调试。
基础结构划分:
你可以创建各种大的团队,一般开发者手上都负责了几个大型的项目组,然后在每个项目组里面,又会有各个子项目的区分。所以可以先建立大项目组概念,然后再大项目组里面建立自己的子项目API。这样划分,你可以写非常多很清晰的API。
这里主要总结相关使用技巧,一些基础的操作略过。
- 开发环境的配置,也就是不同的环境相关配置。基本我们的接口都是 /api/xian/immortal/index/actCheck 这种格式,前面变动的基本都是域名,这个时候我们在环境管理处,点击管理环境,就可以配置不同的环境,
本地mock,一般是自己的代码在本地开发,逻辑开发通过。一般分为本地电脑的本地环境(就是host指向自己电脑的情况)
开发环境,和线上环境保持一致,但是基本只给自己使用的环境,小型项目,一般不会区分开发环境和测试环境。
正式环境(线上环境,一般程序员已经无权改动代码,需要专门的运维人员对代码进行相关管理),给不同的环境指定不同的域名,这样在切换环境的时候,非常方便就切换到了对应环境。
- 全局变量和全局参数的配置使用
全局变量,如果有个参数,需要一直保持的,比如有的token是在API里面的,每次请求都必须带上的参数,就可以加进去。
全局参数,非常有用,很多参数的接口,都是需要限制reffer来源的,防止被搜索引擎爬虫接口直接请求,这种需要在后端接口请求来源里面添加对应网址。当前的接口绝大部分都会限制请求来源。同样,如果确定对应项目数据格式是application/json 这样直接在全局参数的头部里面设置即可。如果是模拟本地的用户登录情况,需要用到cookie,也在全局设置里面直接加上cookie,这样不用每个API都加上接口去请求。
在以前我不懂这个技巧的时候,我特意为每个环境都创建了三个不同的子目录,每个不同的子目录,都接进去了不同的URL,值得注意的是如果请求链接是http开头,是会忽视掉你的全局配置的。这导致我写接口文档的工作量直接翻倍了。后面才发现,原来直接全局配置就可以,完全不需要配置相同的参数。
而且对于测试环境绕过登录而言,只要约定一个token,在全局那修改掉,其他接口不需要改,就可以跟着全部改,工作量大幅度减少。
- 接口的新增 根据你接口的定义改成post或者get 需要注意的是,需要在body里面定义好请求的远程数据格式。否则发出去的请求,远程服务器经常接收不到的,比如WX的API,你只能使用raw发送过去,其他格式的发送,拿不到你的数据,返回的结果是错误的。
其他的你直接从全局继承,如果需要单独设置,或者调试其他接口,只要在这个URL里面直接加上http的链接即可。
如果你的API是需要进行鉴权处理的,打开auth即可
- 如果你是想通过接口发送文件测试(这个功能用的比较少,但是要用的时候,很多人不知道)典型的场景,就是你写了个储存文件的API接口,需要测试上能不能上传文件。
同样对于 第三方提供的远程图片上传验证,也需要对接口进行基础的简单调试。这个时候,我们上传的参数类型,需要设置成form-data (支持多种格式上传),同时发送的类型是file,而且file是可以支持一次性发送多个文件的,只要不超过远程文件的最大上传范围。
- 自动化测试
非专业的测试,很少用到这个功能,但是掌握这个基础的自动化测试,可以减少一些连招,比如下单后调用支付,然后查看订单的详情,这个组合功能,在测试的时候,经常是需要一起的,所以你需要将这三个接口封装成一个小组。更复杂的自动化测试,就是登录获取token,然后获取商品列表,然后获取商品的id,同时自动购买,下单然后查看详情。
- 定时任务,apifox是拥有定时任务功能的
如果是在自己电脑上,要定时运行某个简单的任务。在远程部署比较麻烦,可能需要短时间内运行下,然后就撤掉,你设置一个请求的API,然后设置跑1W次,每次间隔3秒,理论上你电脑挂着,就是一直在跑这个定时任务。当然你也可以用代码本身实现,我之前一个场景是修复用户的错误订单,但是不能批量修复,比较慢,我就使用了一个定时任务的最用户进行注册错误订单信息修复,也是非常实用的功能。 这个适合短时间的自动跑任务。 - API接口分享 这个是使用该工具的核心原因,就是你可以把你的接口直接开放给上下游,让他们随时看到你的API开发进度,在常规的开发里面,如果你不是一个人写完所有的代码,需要另外一个人跟你同时启动开工,一般是调用接口的人和你是实时联动,增加项目的开发速度。
当然,APIfox也支持邀请成员,一起写作开发,注册后,基本就可以一起加入进行开发。