前端工程化之--Mock解决方案   https://www.jianshu.com/p/720b12b5d120

一、为什么要使用mock数据:

  1、后端接口数据没有的时候,前端根据接口文档,使用 mock 数据模拟后端数据。(个人觉得 这里使用 mock数据并不是很重要,还要自己根据文档配数据)

  2、后端接口开发好,但是 测试环境数据有限,生产环境数据比较全。通过代理本地是可以直接使用生产环境的数据。但是如果生产环境代码有认证系统,认证通过,由服务器决定跳转到指定的 生产上的域名地址。页面没有跳转到本地的域名的地址,无法调试开发。

    但是测试环境是可以正常跳到 本地 域名页面的,这个时候可以把测试环境数据不足的接口使用MOCK数据(直接把生产上返回的数据直接复制到mock数据上就可以了,根本不需要直接配mock了)。【开发医保大数据就碰到这个情况】

  总结:mock 数据不要所有的接口都是mock数据。配了mock数据的接口,请求会被拦截,使用mock数据;没有配置的话,请求正常发出,从后端接口获取数据。【antd pro 脚手架安装的项目,就是这个逻辑的mock】


二、mockjs

1、官网: http://mockjs.com/  或  https://www.cnblogs.com/CyLee/p/6072399.html (这个是使用 script 引入mockjs使用的)

2、Mock.mock() :   https://github.com/nuysoft/Mock/wiki/Mock.mock()

  a、Mock.mock( rurl, template )     ,当拦截到匹配 rurl 的 Ajax 请求时,将根据数据模板 template 生成模拟数据,并作为响应数据返回。

  b、Mock.mock( rurl, function( options ) )    ,当拦截到匹配 rurl 的 Ajax 请求时,函数 function(options) 将被执行,并把执行结果作为响应数据返回。

3 、Mock.setup() : https://github.com/nuysoft/Mock/wiki/Mock.setup()

4、 Mock.Random :  https://github.com/nuysoft/Mock/wiki/Mock.Random   (Mock.Random 是一个工具类,用于生成各种随机数据。)

  这里面的随机数据基本包含可能会用到的所有数据。

5、扩展:  通过扩展,可以从自定义的数据中随机选取。(注意,新版的mockjs,对外暴露的借口只有Mock,所以Random方法挂在Mock对象下,即Mock.Random)

Random.extend({
constellation: function(date) {
var constellations = ['白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '处女座', '天秤座', '天蝎座', '射手座', '摩羯座', '水瓶座', '双鱼座']
return this.pick(constellations)
}
})
Random.constellation()
// => "水瓶座"

总结:直接使用mockjs作为假数据,在某些地方还是很好用的。比如返回多种不一样的随机数(需要过一会就变化的动态数据)。使用mockjs自带的接口可以很方便。

三、 Postman搭建mock server (推荐)

    参考: https://1991421.cn/2018/07/29/74fadb6c/  或 https://www.cnblogs.com/ceshi2016/p/7884343.html (推荐,亲测有效)

        postman的使用方法详解  :  https://www.cnblogs.com/xiao-lei/p/7309730.html

    说明:本质上 Postman 内置的 mock server 是在 将配置好的接口以及响应数据都放到了 外网的服务器上了(类似在线mock服务)。

        这个通过断网,就没有响应数据就已经验证了。

    注意:1、Postman 的 mock server 只是域名改变,后面的数据都不变

       2、一个项目可以建立多个 mock server 域名(域名是项目为单位建立的),但是这些域名都是等价的。(可以理解为指向的同一个IP)

       3、一个接口地址可以有多个响应数据的模板(模板是以接口为单位建立的,可以把之前请求的数据作为模板)。

         至于多个响应模板,实际响应的是哪个模板怎么选,还没研究出来。暂时就让一个接口,一个响应吧。

          4、mock serve对应的接口,只是把原来接口的域名改成 mock server 域名就可以了。

       5、postman设置环境变量(如开发环境,生产环境),一般一个变量对应的是一个域名。

          如果,我们把开发环境和生产环境的域名都设置成一个变量 url ,把请求地址都用 {{ url }} + "/abc"来表示,则只要切换不同的环境就可以访问对应的接口了。

           而不需要重新输入请求地址。

四、在线mock服务

  参考 : https://www.easy-mock.com/ (easy-mock挺好用的,就是请求相对本地比较慢)

五、本地搭建  mock server 服务器 (这个比较繁琐,不适合前端使用,目前没有发现安装软件就可以的mock server 服务器)

  

六、使用 json文件模拟后台数据  (最简单,推荐这个)

  使用json文件模拟后台的数据虽然方便,但是有条件限制:

    a、只能通过get请求获取json文件,因为静态服务器处理不了post请求,post请求需要后端程序处理   https://blog.csdn.net/u012612399/article/details/50888448

    b、请求的json文件,必须放在web服务器上(静态服务器)。资源管理器 (file协议) 处理不了ajax的请求,无法给出响应的数据。

总结: mock.js        的优势在于可以通过   js 程序生成 任意数量且随机的数据(如果数据条数很多,js用一个循环就可以生成,这样就提现出优势来了);

mock服务器  的数据需要自己对应一个一个输入,使用这种方式完全不需要去配置,很方便,而且是完全接近真实运行环境的。(推荐这种方式,开发时很少会用到大量的数据,自己设置字段也不会很复杂)

mock 数据 解决方案的更多相关文章

  1. 循序渐进BootstrapVue,开发公司门户网站(5)--- 使用实际数据接口代替本地Mock数据

    在我们开发一些门户网站功能的时候,有时候我们需要快速的创建数据模型来进行数据展示,因为数据结构可能处于不断的修正变化之中,因此服务端的接口我们可以暂时不开发,当我们基本完成数据结构和界面展示的时候,就 ...

  2. vue从mock数据过渡到使用后台接口

    说明: 最近在搭建一个前端使用vue-element-admin,后端使用springBoot的项目. 由于vue-element-admin使用的是mock的模拟数据跑起来的项目,所以在开发过程中难 ...

  3. HP PCS 云监控大数据解决方案

    ——把数据从分散统一集中到数据中心 基于HP分布式并行计算/存储技术构建的云监控系统即是通过“云高清摄像机”及IaaS和PaaS监控系统平台,根据用户所需(SaaS)将多路监控数据流传送给“云端”,除 ...

  4. 浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案

    作者 王枫发布于2014年2月19日 综述 随着越来越多的组织的数据从GB.TB级迈向PB级,标志着整个社会的信息化水平正在迈入新的时代 – 大数据时代.对海量数据的处理.分析能力,日益成为组织在这个 ...

  5. Linux中Curl命令couldn't connect to host解决方案 php操作Curl(http,https)无法获取远程数据解决方案

    本人在做百度账户第三方登录接口,获取百度token,利用php操作curl post方式发送请求token,出现couldn't connect to host错误.经过调试测试,最后终于成功.回头写 ...

  6. 转:浅析基于微软SQL Server 2012 Parallel Data Warehouse的大数据解决方案

    综述 随着越来越多的组织的数据从GB.TB级迈向PB级,标志着整个社会的信息化水平正在迈入新的时代 – 大数据时代.对海量数据的处理.分析能力,日益成为组织在这个时代决胜未来的关键因素,而基于大数据的 ...

  7. vue-cli项目中怎么mock数据

    在vue项目中, mock数据可以使用 node 的 express模块搭建服务 1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data ...

  8. json-server mock数据

    前言: 项目开发中,影响项目进程的常常是由于在前后端数据交互的开发流程中停滞,前端完成静态页面的开发后,后端迟迟未给到接口.而现在,我们就可以通过根据后端接口字段,建立一个REST风格的API接口,进 ...

  9. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据

    § 封装网络请求及 mock 数据 本文配套视频地址: https://v.qq.com/x/page/i05544fogcm.html 开始前请把 ch2-3 分支中的 code/ 目录导入微信开发 ...

随机推荐

  1. 专为渗透测试人员设计的 Python 工具大合集

    如果你对漏洞挖掘.逆向工程分析或渗透测试感兴趣的话,我第一个要推荐给你的就是Python编程语言.Python不仅语法简单上手容易,而且它还有大量功能强大的库和程序可供我们使用.在这篇文章中,我们会给 ...

  2. A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications.

    介绍 本指南的目的是大家感兴趣的惯性MEMS(微机电系统)传感器,特别是加速计和陀螺仪和IMU组合设备(惯性测量单元). 例如IMU单位:Acc_Gyro_6DOF对MCU处理单元UsbThumb提供 ...

  3. Oracle -操作数据库

    删除数据: delete:用delete删除记录,Oracle系统会产生回滚记录,所以这种操作可以使用ROLLBACK来撤销 truncate:删除数据时,不会产生回滚记录.所以执行速度相对较快些 可 ...

  4. Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest

    解决办法: 删除对应的jar 包下的文件 zip -d *.jar META-INF/*.RSA META-INF/*.SF

  5. [python面试题] 什么是单例,单例有什么用,业务场景是什么

    单例概念: 单例是一个特殊的类,这个类只能创建一次实例,例子如下: 1.a = Std(name='leo'), b = Std(name='jack'),两者的指向都是name=‘leo’的对象: ...

  6. 小程序UI自动化(一):appium小程序自动化尝试

    appium 进行 小程序自动化尝试: 由于工作中进行app自动化用的是appium,故首先尝试用appium进行小程序自动化,以美团小程序为例(python脚本实现) 一.配置基础信息 启动微信ap ...

  7. pip安装第三方库报错Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))...

    pip安装第三方库时报错Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))...,详细报错见下 ...

  8. MFC坐标问题

    页面空间中的矩形被称为窗口,设备空间中的矩形被称为视口. 页面空间与设备空间的转换示意图: 页面空间到设备空间的转换需要两个矩形的宽高比(转换因子). 设备空间到物理空间转换的唯一作用是平移,并由Wi ...

  9. 用其他音乐源帮帮网易云,Android听歌利器

    镜像文章 1.用其他音乐源帮帮网易云,Ubuntu听歌利器 2.用其他音乐源帮帮网易云,Windows听歌利器 1.TaiChi模块简介 TaiChi(太极)是一款免解锁,免root,就能够运行 Xp ...

  10. Scrapy框架——安装以及新建scrapy文件

    一.安装 conda install Scrapy   :之后在按y 表示允许安装相关的依赖库(下载速度慢的话也可以借助镜像源),安装的前提是安装了anaconda作为python ,   测试scr ...