Easy Mock简单使用

Easy Mock是一个可视化,并且能快速生成模拟数据的持久化服务。

解决问题

  • 开发时,后端还没完成数据输出,前端只好写静态模拟数据。
  • 数据太长了,将数据写在js文件里,完成后挨个改url。
  • 某些逻辑复杂的代码,加入或去除模拟数据时得小心翼翼。想要尽可能还原真实的数据,要么编写更多代码,要么手动修改模拟数据。
  • 特殊的格式,例如IP,随机数,图片,地址,需要去收集。

准备工作

Mock.js 的语法规范

数据模板定义规范

数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:

// 属性名   name
// 生成规则 rule
// 属性值   value
'name|rule': value

举例:

'name|min-max': string
通过重复 string 生成一个字符串,重复次数大于等于 min,小于等于 max。

模板:
 "string|1-10": "★"
 
结果:
{
  "string": "★★"
}

数据占位符定义规范

占位符只是在属性值字符串中占个位置,并不出现在最终的属性值中。

@占位符
@占位符(参数 [, 参数])

举例:

Mock.mock({
    name: {
        first: '@FIRST',
        middle: '@FIRST',
        last: '@LAST',
        full: '@first @middle @last'
    }
})
// =>
{
    "name": {
        "first": "Charles",
        "middle": "Brenda",
        "last": "Lopez",
        "full": "Charles Brenda Lopez"
    }
}

语法不是本文重点,具体请参考官方文档

Easy Mock

重点来了,现在正式开始

首先请大致过一遍官方文档,主要熟悉基础语法,数据占位符,怎样创建一个项目,响应式数据这几个模块,能方便理解下面的使用方式

官网
https://www.easy-mock.com

常见使用方式

目前我觉得下面三种数据已经够使用了

静态数据

静态数据使用很简单,随便写个json,复制到编辑区

{
  name: '小明',
  age: 14,
  gender: true,
  height: 1.65,
  grade: null,
  'middle-school': '\"W3C\" Middle School',
  skills: ['JavaScript', 'Java', 'Python', 'Lisp']
}

流程图片


image
image

这个访问结果解释上面的json

动态数据

结合Mock.js的语法,将json改造一下,可以生成随机数据,这样就避免了每次都是一样的假数据,比较符合真实的开发场景

{
  "code": 0,
  "message": "success",
  "update_time": "@now",
  "data|20": [{
    "id": "@id",
    "wechat_id": "@word(5)",
    "phone": /^1[34578]\d{9}$/,
    "name": "@cname",
    "index|+1": 0
  }]
}

访问结果:

{
  "code": 0,
  "message": "success",
  "update_time": "2019-03-15 15:58:10",
  "data": [
    {
      "id": "130000198012071312",
      "wechat_id": "gbjrh",
      "phone": "15538214534",
      "name": "段超",
      "index": 0
    },
    {
      "id": "120000201604272428",
      "wechat_id": "ycskj",
      "phone": "17531635685",
      "name": "龙明",
      "index": 1
    },
    {
      "id": "360000198712315587",
      "wechat_id": "yayql",
      "phone": "15741728621",
      "name": "范秀英",
      "index": 2
    },
    {
      "id": "350000199512068537",
      "wechat_id": "eiqgj",
      "phone": "14166884429",
      "name": "段军",
      "index": 3
    },
    {
      "id": "630000199301100725",
      "wechat_id": "durpk",
      "phone": "14585958661",
      "name": "郑芳",
      "index": 4
    },
    {
      "id": "370000197102053353",
      "wechat_id": "uywns",
      "phone": "15628123122",
      "name": "任芳",
      "index": 5
    },
    {
      "id": "420000198104243678",
      "wechat_id": "keegs",
      "phone": "14733828249",
      "name": "段芳",
      "index": 6
    },
    {
      "id": "990000199208102867",
      "wechat_id": "bfjii",
      "phone": "14310033074",
      "name": "马勇",
      "index": 7
    },
    {
      "id": "630000201009097354",
      "wechat_id": "qkner",
      "phone": "14313920949",
      "name": "王霞",
      "index": 8
    },
    {
      "id": "610000201108312343",
      "wechat_id": "ldglx",
      "phone": "18382132410",
      "name": "彭明",
      "index": 9
    },
    {
      "id": "310000197505018332",
      "wechat_id": "tncgo",
      "phone": "15787376932",
      "name": "金伟",
      "index": 10
    },
    {
      "id": "610000201108270470",
      "wechat_id": "nsjuw",
      "phone": "15512171367",
      "name": "彭静",
      "index": 11
    },
    {
      "id": "82000019920825184X",
      "wechat_id": "ivuhc",
      "phone": "17286394622",
      "name": "董磊",
      "index": 12
    },
    {
      "id": "990000200711062781",
      "wechat_id": "wswxm",
      "phone": "14202849159",
      "name": "汤涛",
      "index": 13
    },
    {
      "id": "150000200610210611",
      "wechat_id": "vwnvl",
      "phone": "14824152287",
      "name": "汤刚",
      "index": 14
    },
    {
      "id": "340000198310233972",
      "wechat_id": "gzysq",
      "phone": "15934454235",
      "name": "林丽",
      "index": 15
    },
    {
      "id": "42000020020501126X",
      "wechat_id": "hxncn",
      "phone": "15433795836",
      "name": "姚明",
      "index": 16
    },
    {
      "id": "410000200607202219",
      "wechat_id": "tkmnm",
      "phone": "14975419206",
      "name": "朱洋",
      "index": 17
    },
    {
      "id": "230000197305281259",
      "wechat_id": "bkvlf",
      "phone": "15869843614",
      "name": "杨艳",
      "index": 18
    },
    {
      "id": "640000201702016673",
      "wechat_id": "vifef",
      "phone": "13829263258",
      "name": "雷娟",
      "index": 19
    }
  ]
}

响应式数据

可以模拟真实的接口一样,根据传入的参数不同获取对应的数据

{
  "code": function({
    _req
  }) {
    return _req.query.my_parameters ? 0 : -1;
  },
  "msg": function({
    _req
  }) {
    return _req.query.my_parameters ? "" : "缺少my_parameters参数"
  },

  "data": function({
    _req,
    Mock
  }) {
    if (_req.query.my_parameters) {
      return Mock.mock("@cname");
    } else {
      return "";
    }
  }

}

访问结果:

{
  "code": -1,
  "msg": "缺少my_parameters参数",
  "data": ""
}

掌握了上面三个使用方式就可以不依赖后端,愉快的玩耍了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351

推荐阅读更多精彩内容