目录
- mock数据的应用场景
- 目前有哪些mock的方式
- YApi
- Postman
- YApi的介绍
- 为什么不使用YApi
- YApi的mock数据的好处
- YApi的相关文档
- 如何搭建一个Mock Server(PostMan)
- 如何创建一个Mock Server
- 简单的配置需要Mock的接口
- 配置Mock Server并创建Server
- 获取私有Server的API Key
- 创建成功后会拿到哪些数据
- 测试功能
- 在Android项目里面能如何设计一套 动态切换Mock和正常接口的切换组件思路
- 自定义注解
- 通过模仿RxJava2CallAdapter的思路
- 通过注解和反射技术动态修改真正网络请求的Request参数
mock数据的应用场景
在大部分开发同学的日常开发生活中,大概率都能遇到一个问题,后端同学维护了某个需求的接口文档,然后由于不可抗力的因素,导致无法提供正常的数据,你恰好就卡在了这个地方,难道要痴痴傻傻的等着“她”回来吗;
这个时候就体现出Mock数据的重要性了,通过mock的方式自给自足,等“她”回来之后开始联调,完成后删除这个mock的逻辑,也不用“痴痴傻傻等待她回来”。
目前有哪些mock数据的方式
目前我熟悉的有YApi、Postman提供了mock服务,
个人比较推荐YApi 具备接口文档、权限管理、Mock数据等多个功能,但是唯一的缺点是:平台需要人搭建,接口需要Java同学维护;如果公司有意向的话可以花点时间去搞一下,自己一个人维护有一点得不偿失的感觉......
Postman 这个工具一般在接口联调的时候使用频繁,其具备一个Mock server的功能,不需要你去搭建平台,也不需要维护接口文档,就是最简单的Mock数据的功能。
YAPi
简介:一个集成化的平台,可以通过接口文档、权限管理、mock数据的功能,其功能完成度非常高,非常适合企业去维护;
不推荐的原因:比较适合公司项目里面去维护,大家都用这一套,如果是个人使用,有点得不偿失,维护成本高于你的收益;
YApi的mock好处:不需要改动太多的参数,仅将原本的网络请求的相对路径进行修改即可,方便好用;
// 与原本的网络请求相对路径
String url = "user/info";
// mock网络请求的相对路径
String url = "443/user/info";
Postman的mock数据教程
创建Mock server:打开Postman后,能够发现一个Mock Server模块,点击 + 添加一个Mock Server
配置需要mock数据的接口:支持 RequestMethod、RequestUrl、RequestBody、ResponseCode、ResponseBody的配置
这里我简单的配置一下数据,并点击Next进行下一步
配置Server的参数: 主要配置名称和是否私有server(如果够选了私有Server,则需要生成一个Postman API Key,并配置到 X-api-key 请求头中 如何生成API-Key)
创建成功后的返回结果:会给出一个MockUrl,这样一个mock请求就完成了
测试mock功能:这里查看mock的数据,我们可以通过访问这个地址来获取数据
设计Android上自动切换mock和真实的网络请求组件
学习自己构建一个mock数据平台的最终目标是为了搭建一个可以配合rxjava的动态切换mock和真实数据的网络请求组件;
基于Retrofit + RxJava的基础上进行魔改,
- 自定义注解标识需要mock数据的方法,并携带一些mock需要的数据(比如mock后的url、header等);
- 构建Retrofit对象,在测试环境使用自定义CallAdapterFactory,在生产环境使用RxJava2CallAdapterFactory;
- 在Factory的get()方法中,找到对应注解并拿到注解上的数据,并拦截到自定义的CallAdapter中,如果没有则认为不需要mock,返回RxJava2CallAdapter对象去正常的请求。
关于这个组件,在后续会进行更新。