在长期的服务过程中,我们经常会遇到前来咨询的用户与我们反馈以下这种情况:咨询者是一个前端人员,在项目开发的过程中需要与后端进行对接,遇到后端还没完成数据输出的情况下,他只好写静态模拟数据,在遇到大型项目的情况下,数据冗长、代码复杂、多样的数据类型包括IP、图片,地址,函数等,在极短的项目周期及验收时间下,手动修改模拟数据显得一点都不现实。

对于这样的问题,其实eoLinker提供了目前最佳的解决方案:Mock API

使用Mock API,前后端人员只需要定义好接口文档就可以开始并行工作;后端之间的接口耦合和测试中未准备好的依赖接口也能被Mock解决,不会出现团队互等的情况。这样的话,越早开展开发自测,提前了发现、修复缺陷的时间,也有效地保证整个产品质量以及进度。

eoLinker提供了两种模拟API的方式,基础Mock以及高级Mock,那应该怎么使用eoLinker的Mock呢?基础Mock和高级Mock的区别是什么呢?

在eoLinker中,基础Mock也称简易Mock,提供了以下功能:

1、支持HTTP、HTTPS

2、支持RESTful风格API

3、支持对请求方式进行校验(免费版为默认开启,专业版可针对项目设置关闭)

4、支持模拟HTTP状态码

5、支持真实的前置URL全局替换掉Mock请求的前置URL

6、支持对请求参数进行校验(专业版)

而高级Mock除了拥有基础Mock的功能之外,还具备以下功能:

7、支持根据mockjs规则生成mock数据,支持自定义js函数

8、支持根据在高级MOCK中设定的生成规则&属性值重新构造MOCK

(专业版)

其中的3、6、8功能点,需前往专业版AMS中使用。下面我们选择三个重要功能点进行简单叙述。

1、支持设置返回结果的生成规则,支持MockJS:

Mock.js由于能拦截并模拟 ajax 请求,因此用Mock.js模拟后端数据变得异常简单:

结合上述场景来看,eoLinker通过支持MockJS将能解决以下所有问题。

1、文档没有事先定义,开发过程,后端人员可能存在口头讲述,但是和实际返回数据不一样的情况,而eoLinker 高级mock本身就规范了这种行为,高效协作不是问题。

3、想要尽可能还原真实的数据,不用编写更多代码,也不用手动修改模拟数据。

直接模拟后台数据返回,事半功倍。

4、不担心例如IP,随机数,图片,地址等特殊的格式多重收集,丰富的格式支持省下大量时间。

5、eoLinker的MOCK还支持自定义函数和正则等复杂的数据类型,方便拓展各类更多数据类型。

正因如此,eoLinker MockAPI支持MockJS,解决了前后端开发中的数据模拟问题,大幅提升了开发的工作效率。

2、对请求参数进行校验:

这是高级版中的功能,eoLinker考虑到,开发过程中,有很多后端接口都会对参数进行校验的,确认哪些接口参数是必传,哪些接口参数是非必传。而前端开发调用的是Mock接口,从协助的角度上看,Mock API是模拟后端接口返回参数协作前端开发,那么对参数校验的功能也就十分必要,这样子才能模拟最真实的后端接口,更好地协助前端开发。eoLinker支持对请求参数进行校验,确定好这些接口参数是否必传,这样子就不会漏传某个参数了,行之有效的避免了冗余的工作量。

3、支持每次请求随机生成返回结果:

这同样是高级版中的功能,eoLinker认识到,随机生成返回结果的功能是必要的功能,因为接口每次返回的参数的值是不同的,所以随机生成可以使模拟的返回结果更真实。

接下来就是高级Mock实际教程部分。

1、编辑Mock数据 进入 接口编辑页面,点击上方 高级Mock 选项卡,进入到Mock设置页面:

注意: Mock的填写依赖于接口文档中的返回参数,如果进入Mock设置页面发现没有可以设置的字段,请返回 基础信息 选项卡完善接口的返回信息; MockAPI支持 Mockjs 语法,了解相关语法教程请前往:http://Mockjs.com/;

使用步骤:

1.返回参数填写相关键值对,若拥有层级结果,请用 两个英文右箭头 >>或者:: 表示层级:

根据Mockjs示例进行拆分填写。以下图 红框 部分进行讲解:

name对应列表字段名;

min-max对应列表生成规则;

string对应列表属性值,使用需搭配@Mock=使用,如 @Mock=’★’

将上图的Mock语法写入:

注意:红色框部分为设置整体返回结果类型,支持两种(object/array),生成规则及属性值同样对应Mockjs语法 2、调用MockAPI 进入接口详情页,点击上方的Mock标签,在下方的Mock部分可以看到有Mock API的请求地址,复制该地址即可访问Mock API得到虚拟数据:

Mock API是如何在开发中发光发热的?的更多相关文章

  1. 如何通过Mock API提高APP开发效率?

    APP开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终apk)添加一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户端的开发. Mock API提供了这一问 ...

  2. Android学习开发中如何保持API的兼容

    Android学习开发中如何保持API的兼容: 1,采用良好的设计思路 在设计过程中,如果能按照下面的方式来进行设计,会让这个API生命更长久 面向用例的设计,收集用户建议,把自己模拟成用户,保证AP ...

  3. Mock.js开发中拦截Ajax

    Mock.js 是一款前端开发中拦截Ajax请求再生成随机数据响应的工具.可以用来模拟服务器响应. 优点是非常简单方便, 无侵入性, 基本覆盖常用的接口数据类型. 在我们的生产实际中,后端的接口往往是 ...

  4. gulp自己主动化任务脚本在HybridApp开发中的使用

    眼下做前端开发的同学可能都熟悉grunt.fis之类的自己主动化构建工具.事实上在HybridApp开发中我们也能够使用这些工具来简化我们的工作.gulp就是一个比grunt,fis都先进的构建工具. ...

  5. MOCK API 的定义及实践(使用eolinker实现)

    MOCK API 的定义 根据百度百科的定义,mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象,mock对 ...

  6. JSX AS DSL? 写个 Mock API 服务器看看

    这几天打算写一个简单的 API Mock 服务器,老生常谈哈?其实我是想讲 JSX, Mock 服务器只是一个幌子. 我在寻找一种更简洁.方便.同时又可以灵活扩展的.和别人不太一样的方式,来定义各种 ...

  7. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  8. iOS项目开发中的知识点与问题收集整理①(Part 一)

    前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在 ...

  9. IOS 开发中要注意的事项

    1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ...

随机推荐

  1. python中的反射

    在绝大多数语言中,都有反射机制的存在.从作用上来讲,反射是为了增加程序的动态描述能力.通俗一些,就是可以让用户参与代码执行的决定权.在程序编写的时候,我们会写很多类,类中又有自己的函数,对象等等.这些 ...

  2. c#.net Excel中的数据导入到SQL数据库中

    /// <summary>        /// 从Excel 导入学生        /// </summary>        /// <param name=&qu ...

  3. 深入理解javascript事件流

    摘要:事件流这个东西是比较重要的,为了让自己更加理解js中的事件流,必须整理整理,梳理一下事件流的各种东西啊.本文大部分内容参考<javascript高级程序设计第三版> 先来一段书里的原 ...

  4. JSON浅总

    我们在以前的学习中了解到XML是一种结构化的数据表示方式,一种可扩展标记语言!可以把XML理解成一个微型的结构化的小的数据库,保存一些小型的数据和传输数据,有严格的显示限制.但是XML语句有些冗长和繁 ...

  5. 你很牛B,面试却没过,为什么?

    点击标题下「飞测」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...

  6. TransactionScope 对该事务的状态无效 和一些注意事项

    使用TransactionScope 的时候要操作同一种数据库操作方式,不能一个方法用ado.net ,另外一个方法用EF,那样会报 "该事务管理器已经禁止了它对远程/网络事务的支持&quo ...

  7. VisualStudio中的编辑后期生成事件

    在visual studio中加入项目文件,也就是引用外部文件,比如在tools\options中的show directions for中选择include files,我们需要引用项目(solut ...

  8. 使用requirejs实现模块化编程

    > 序言 - -# 公司大了,业务多了,前端代码量也逐渐增大,我们渐渐的依赖js实现的交互越来越多,长期以来会导致我们的代码维护越来越困难,所以依赖的插件也越来越多..比如这样页面中有大量的js ...

  9. python学习之glob模块

    如何批量获取文件路径 import glob import os def image_proc(): for files in glob.glob('/home/xxx/filename/*.png' ...

  10. linux下利用ruby做系统备份与还原

    啥都不说了,都在代码里 :) #!/usr/bin/ruby BAK_PATH = "/media/backup.tar.xz" def to_backup exclude_fil ...