前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >yapi中使用json-schema mock数据

yapi中使用json-schema mock数据

作者头像
跑马溜溜的球
发布2020-12-07 14:24:24
2.6K0
发布2020-12-07 14:24:24
举报
文章被收录于专栏:日积月累1024

1. 基本的json-schema mock

首先,我们建立一个简单的json-schema,如下图所示:

image
image

该schema定义了一个返回结构,包括两个字段,data为string类型,code为integer类型。 点击“预览”,可以看到类似下面的mock数据:

代码语言:javascript
复制
{
  "data": "non id",
  "code": -12100200
}

这就是最基本的mock, 即根据数据类型返回随机串。

2. 设置默认值

将1中图示的字段后的mock部分填入字串,即可为字段设置默认值。

image
image

如上图所示,我们将data的默认值设为this is data; 将code的默认值设为1。在这种情况下,接口的返回值将始终为:

代码语言:javascript
复制
{
  "data": "this is data",
  "code": 1
}

注意,如果默认值与所设字段类型不匹配,相应字段的接口返回值将为null。

比如上例中,code为integer类型,若将默认值设为"this is number"。接口返回值将为:

代码语言:javascript
复制
{
  "data": "this is data",
  "code": null
}

3. 基于mockjs占位符的mock

3.1 什么是占位符

这个概念来源于mockjs, 可以将其简单理解为用于生成特定字串的函数, 具体可参见mockjs官方定义。不过此处并不支持mockjs中所有占位符功能,大概只相当于Mock.Random部分。

3.2 使用占位符

点击数据字段后的mock框,可以看到支持的占位符列表。如下图所示:

image
image

我们将data选为@ip, 点击预览可以看到接口返回值如下:

代码语言:javascript
复制
{
  "data": "223.111.85.247",
  "code": 1
}

data将是一个满足ip规则的串。

3.3 常用占位符功能详述

@integer(min?, max?)

返回一个随机的整数。

  • min:可选参数,整数最小值。
  • max:可选参数,整数最大值。

例:

代码语言:javascript
复制
@integer
//--> 1686805249110932
@integer(10,100)
//--> 26
@float( min?, max?, dmin?, dmax? )

返回一个随机浮点数。

  • min:可选,整数部分最小值。
  • max:可选,整数部分最大值。
  • dmin:可选,小数部分最小长度。
  • dmax:可选,小数部分最大长度。

例:

代码语言:javascript
复制
@float
//--> 1924364975802932.5
@float(60, 100, 2, 6)
//--> 68.1258
@string

返回随机字串,有如下几种使用方式:

代码语言:javascript
复制
@string
@string(length)
@string(pool, length)
@string(min, max)
@string(pool, min, max)
  • length: 字串长度
  • min: 字串最短长度
  • max: 字串最大长度
  • pool:表示字符池。如果传入 ‘lower’、‘upper’、‘number’或’symbol’,表示从内置的字符池从选取。对应关系如下:
代码语言:javascript
复制
lower: "abcdefghijklmnopqrstuvwxyz",
upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
number: "0123456789",
symbol: "!@#$%^&*()[]"

例:

代码语言:javascript
复制
@string(6)
//--> kV(qj4
@string('upper',2,6)
//--> NJKU
@string('123abc!@#', 2,6)
//--> #ab!21
@url(protocol?, host?)

随机生成一个 URL。

  • protocol:指定 URL 协议。例如 http。
  • host:指定URL域名和端口号。

例:

代码语言:javascript
复制
@url('https', '123.sogou.com')
//--> https://123.sogou.com/ccdkttr
@ip

随机生成一个IP地址。

@timestamp

返回当前unix时间戳

@datetime(format?)

返回一个随机的日期和时间字符串。

  • format:生成的日期和时间字符串的格式。默认值为yyyy-MM-dd HH:mm:ss。

例:

代码语言:javascript
复制
@datetime()
//--> 1977-11-17 03:50:15
@datetime('y-M-d H:m:s')
//--> 02-4-23 2:49:40
@pick(arr)

从数组中随机选取一个元素,并返回。

例:

代码语言:javascript
复制
@pick(['this', 'is', 'picker', 'test'])
//--> picker

3.4 更多

更多占位符使用可参见下述文档

代码语言:javascript
复制
https://github.com/nuysoft/Mock/wiki/Mock.Random
http://mockjs.com/examples.html#DPD
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/01/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本的json-schema mock
  • 2. 设置默认值
  • 3. 基于mockjs占位符的mock
    • 3.1 什么是占位符
      • 3.2 使用占位符
        • 3.3 常用占位符功能详述
          • 3.4 更多
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档