背景
- 前端开发同学在拿到接口文档后,往往需要结合接口数据进行开发;
- 在接口未可用时,前端开发一般通过如下途径进行
数据mock:- 本地业务逻辑代码掺杂假数据,但具有开发侵入性;
- 本地项目引入mockjs、mocker-api、can-fixture等插件进行mock数据,具有数据共享弱、项目协作时需重复创建mock等缺点;
- 本地私人机器临时搭建
mock server,虽解决了以上问题但具有服务依赖个人、维护性差等缺点; - 使用
第三方在线mock服务,具有数据泄漏、服务不稳定等缺点;
数据mock能力越弱,对模块或组件的的单测程度的负面影响越大;
目标
- 支持
在线mock服务 - mock服务文档
- 支持
jsonp - 支持
动态返回``mock数据 - 支持自定义响应头
- 支持
mockjs语法 后端接口可低成本对接mock服务,减少前端数据定义成本- 支持
项目管理 - 支持
私有化部署
方案调研
方案选取
尽管可以自行实现,但投入人力和时间成本不允许,最终采用私有化部署成熟的mock方案。再结合私有化部署的成熟程度及平台的用户体验,最终选择私有化部署easymock。
方案实现
只部署内网环境,主要流程如下:
- 申请服务器;
- 服务器配置;
- 区分文件夹用处;
- 安装
npm、nvm、nrm; - 安装配置
git、mongoDB、Redis;
- 将
easy-mock 源代码保管至gitlab,方便后续维护。再将代码克隆至服务器指定文件夹,按照指导文档进行相关配置; - 配置
jenkins和gitlab Webhooks,实现后续推送easy-mock实现自动化部署; - 创建
三级域名并配置dns、nginx; - 使用pm2管理
easymock 服务;
项目进度
已于2021年6月私有化部署完成并投入使用。