VirAPI新手入门05-MockJS方法使用大全
于发布在VirAPI官网
本篇文章将列举MockJS在VirAP经常会使用到的方法,及如何通过MockJS来定义响应的虚拟数据类型与结构。
基本数据类型
1. 布尔值 @boolean()
- 描述:随机生成一个布尔值。
- 在VirAPI中使用:
{ "boolean1": "@boolean", // 随机生成一个整数 "boolean2": "@boolean()", // 同上,随机生成一个整数,若不使用配置参数,可省略括号 }
2. 整数 @integer(min?, max?)
- 描述:随机生成一个整数值,若定义了最小值最大值,则该生成的的整数将会是该范围内任意可能的一个整数。
- 参数:
- min:可选,最小值
- max:可选,最大值
- 在VirAPI中使用:
{ "int1": "@integer", // 随机生成一个整数 "int2": "@integer()", // 同上,随机生成一个整数,若不使用配置参数,可省略括号 "int3": "@integer(10)", // 随机生成一个大于10的整数 "int4": "@integer(10, 100)", // 随机生成一个取值在10到100之间的整数 }
3. 浮点数 @float(min?, max?, dmin?, dmax?)
- 描述:随机生成一个浮点数,若定义了最小值最大值,则该生成的的浮点数将会是该范围内任意可能的一个浮点数值。
- 参数:
- min:可选,最小值
- max:可选,最大值
- dmin:可选,小数位最小长度
- dmax:可选,小数位最长长度
- 在VirAPI中使用:
{ "float1": "@float", // 随机生成一个浮点数 "float2": "@float()", // 同上,随机生成一个浮点数,若不使用配置参数,可省略括号 "float3": "@float(10)", // 随机生成一个大于10的浮点数 "float4": "@float(10, 100)", // 随机生成一个取值在10到100之间的浮点数 "float5": "@float(10, 100, 2)", // 随机生成一个取值在10到100之间,且小数位最短为2位的的浮点数 "float6": "@float(10, 100, 2, 5)", // 随机生成一个取值在10到100之间,且小数位数在2至5长度之间的浮点数 }
4. 字符串 @string(length?)
@string(pool?, length?)
@string(min?, max?)
@string(pool?, min?, max?)
- 描述:随机生成一个字符串。
- 参数:
- pool:可选,组成字符串的字符类型,当前支持
lower
(小写字母)、upper
(大写字母)、number
(数字)、symbol
(特殊符号)、aeiou
(元音字母) - length:可选,字符串长度
- min:可选,最小长度
- max:可选,最大长度
- pool:可选,组成字符串的字符类型,当前支持
- 在VirAPI中使用:
{ "str1": "@string", // 随机生成一个字符串 "str2": "@string()", // 同上,随机生成一个字符串,若不使用配置参数,可省略括号 "str3": "@string(10)", // 随机生成一个长度为10的字符串 "str3": "@string('lower', 10)", // 随机生成一个由小写字母组成,且长度为10的字符串 "str4": "@string(10, 100)", // 随机生成一个长度在10到100之间的字符串 "str5": "@string('lower', 10, 100)", // 随机生成一个长度在10到100之间,且有小写字母组成的字符串 }
5. 日期 @date(format?)
- 描述:随机生成一个日期值(年月日),还支持定义日期的格式类型。
- 参数:
- format:可选,日期格式类型,如
yyyy-MM-dd
、yy-MM-dd
、yyyy年MM月dd日
- format:可选,日期格式类型,如
- 在VirAPI中使用:
{ "date1": "@date", // 随机生成一个日期值,默认日期格式为:yyyy-MM-dd "date2": "@date()", // 同上,随机生成一个日期值,若不使用配置参数,可省略括号 "date3": "@date('yy-MM-dd')", // 随机生成一个格式为yy-MM-dd的日期 }
6. 时间 @time(format?)
- 描述:随机生成一个时间值(时分秒),还支持定义时间的格式类型。
- 参数:
- format:可选,时间格式类型,如
HH:mm:ss
、H:m:s
、A HH:mm:ss
、HH点mm分ss秒
- format:可选,时间格式类型,如
- 在VirAPI中使用:
{ "time1": "@time", // 随机生成一个时间值,默认时间格式为:HH:mm:ss "time2": "@time()", // 同上,随机生成一个时间值,若不使用配置参数,可省略括号 "time3": "@time('HH:mm:ss')", // 随机生成一个格式为HH:mm:ss的时间 }
7. 日期时间 @datetime(format?)
- 描述:随机生成一个日期时间值(年月日时分秒),还支持定义日期时间的格式类型。
- 参数:
- format:可选,日期时间格式类型,如
yyyy-MM-dd
、yy-MM-dd
、yyyy年MM月dd日
- format:可选,日期时间格式类型,如
- 在VirAPI中使用:
{ "datetime1": "@datetime", // 随机生成一个日期时间值,默认日期时间格式为:yyyy-MM-dd HH:mm:ss "datetime2": "@datetime()", // 同上,随机生成一个日期时间值,若不使用配置参数,可省略括号 "datetime3": "@datetime('yy-MM-dd A HH:mm:ss')", // 随机生成一个格式为yy-MM-dd A HH:mm:ss的日期时间 }
8. 图片 @image( size?, background?, foreground?, format?, text? )
- 描述:随机生成一个图片资源URL。
- 参数:
- size:可选,图片尺寸,格式为:
宽x高
,如200x100
,即定义返回一个长200px,高100px的图片 - background:可选,图片背景颜色值,色彩值必须为HEX格式,如
#FF6600
- foreground:可选,图片字体文字颜色值,色彩值必须为HEX格式,如
#ffffff
- format:可选,图片类型,如
png
、jpg
、gif
- text:可选,图片上的文字内容
- size:可选,图片尺寸,格式为:
- 在VirAPI中使用:
{ "image1": "@image", // 随机生成一个图片资源URL "image2": "@image()", // 同上,随机生成一个图片资源URL,若不使用配置参数,可省略括号 "image3": "@image('200x100')", // 随机生成一个长度为200px,高度为100px的图片资源URL "image4": "@image('200x100', '#FF6600')", // 随机生成一个长度为200px,高度为100px,且背景色彩值为#FF6600的图片资源URL "image5": "@image('200x100', '#FF6600', 'VirAPI')", // 随机生成一个长度为200px,高度为100px,背景色彩值为#FF6600,且图片中的文字为VirAPI的图片资源URL "image6": "@image('200x100', '#FF6600', 'png', 'VirAPI')", // 随机生成一个长度为200px,高度为100px,背景色彩值为#FF6600,且图片中的文字为VirAPI的PNG图片资源URL }
9. 段落 @paragraph( min?, max? )
@paragraph( len? )
@cparagraph( min?, max? )
@cparagraph( len? )
- 描述:随机生成段落文本。
- 方法:
- paragraph:返回英文段落
- cparagraph:返回中文段落
- 参数:
- min:可选,文本最短段落数
- max:可选,文本最长段落数
- len:可选,文本段落数
- 在VirAPI中使用:
{ "paragraph1": "@paragraph", // 随机生成一个文本英文段落 "paragraph2": "@paragraph()", // 同上,随机生成一个文本英文段落,若不使用配置参数,可省略括号 "paragraph3": "@cparagraph(2)", // 随机生成一个有两个段落的中文文本 "paragraph4": "@paragraph(1, 3)", // 随机生成一个有1至3个段落的英文文本 }
10. 句子 @sentence( min?, max? )
@sentence( len? )
@csentence( min?, max? )
@csentence( len? )
- 描述:随机生成一条句子文本。
- 方法:
- sentence:返回英文句子文本
- csentence:返回中文句子文本
- 参数:
- min:可选,句子最少词汇数
- max:可选,句子最多词汇数
- len:可选,组成句子的词汇数
- 在VirAPI中使用:
{ "sentence1": "@sentence", // 随机生成一条英文句子 "sentence2": "@sentence()", // 同上,随机生成一条英文句子,若不使用配置参数,可省略括号 "sentence3": "@csentence(2)", // 随机生成一条由2个词汇组成的中文句子 "sentence4": "@sentence(3, 5)", // 随机生成一条由3至5个词汇组成的英文句子 }
11. 单词词汇 @word( min?, max? )
@word( len? )
@cword( min?, max? )
@cword( len? )
- 描述:随机生成一个单词词汇。
- 方法:
- word:返回英文单词词汇
- cword:返回中文单词词汇
- 参数:
- min:可选,单词词汇最少字符数
- max:可选,单词词汇最多字符数
- len:可选,组成单词词汇的字符数
- 在VirAPI中使用:
{ "word1": "@word", // 随机生成一个英文单词词汇 "word2": "@word()", // 同上,随机生成一个英文单词词汇,若不使用配置参数,可省略括号 "word3": "@cword(2)", // 随机生成一条由2个字符组成中文单词词汇 "word4": "@word(3, 5)", // 随机生成一条由3至5个字符组成英文单词词汇 }
高级数据方法
1. 标题文本 @title( min?, max? )
@title( len? )
@ctitle( min?, max? )
@ctitle( len? )
- 描述:随机生成一个标题文本。
- 方法:
- title:返回英文标题文本
- ctitle:返回中文标题文本
- 参数:
- min:可选,标题文本最少词汇数
- max:可选,标题文本最多词汇数
- len:可选,组成标题文本的词汇数
- 在VirAPI中使用:
{ "title1": "@title", // 随机生成一个英文标题文本 "title2": "@title()", // 同上,随机生成一个英文标题文本,若不使用配置参数,可省略括号 "title3": "@ctitle(2)", // 随机生成一条由2个中文词汇组成标题文本 "title4": "@title(3, 5)", // 随机生成一条由3至5个英文词汇组成标题文本 }
2. 姓名 @name( middle? )
@cname()
- 描述:随机生成一个姓名。
- 方法:
- name:返回英文姓名
- cname:返回中文姓名
- 参数:
- middle:可选,是否有中间名(仅英文姓名使用)
- 在VirAPI中使用:
{ "name1": "@name", // 随机生成一个英文姓名 "name2": "@name()", // 同上,随机生成一个英文姓名,若不使用配置参数,可省略括号 "name3": "@name(true)", // 随机生成一个有中间名的英文姓名 "name4": "@cname", // 随机生成一个中文姓名 }
3. URL @url( protocol? )
- 描述:随机生成一个URL。
- 参数:
- protocol:可选,对于URL网络协议,如
http
、https
、ftp
- protocol:可选,对于URL网络协议,如
- 在VirAPI中使用:
{ "url1": "@url", // 随机生成一个网络协议URL "url2": "@url()", // 同上,随机生成一个网络协议URL,若不使用配置参数,可省略括号 "url3": "@url('http')", // 随机生成一个http网络协议的URL }
4. 电子邮箱 @email( )
- 描述:随机生成一个电子邮箱。
- 在VirAPI中使用:
{ "email1": "@email", // 随机生成一个电子邮箱 "email2": "@email()", // 同上,随机生成一个电子邮箱,若不使用配置参数,可省略括号 }
5. IP @ip( )
- 描述:随机生成一个IP。
- 在VirAPI中使用:
{ "ip1": "@ip", // 随机生成一个IP "ip2": "@ip()", // 同上,随机生成一个IP,若不使用配置参数,可省略括号 }
6. 省份 @province( )
- 描述:随机生成一个省份名。
- 在VirAPI中使用:
{ "province1": "@province", // 随机生成一个省份名 "province2": "@province()", // 同上,随机生成一个省份名,若不使用配置参数,可省略括号 }
7. 城市 @city( prefix? )
- 描述:随机生成一个城市名。
- 参数:
- prefix:可选,是否加上对于所属省份名
- 在VirAPI中使用:
{ "city1": "@city", // 随机生成一个城市名 "city2": "@city()", // 同上,随机生成一个城市名,若不使用配置参数,可省略括号 "city2": "@city(ture)", // 随机生成一个包含省份名的城市 }
8. 全局唯一标识符 @guid( )
- 描述:随机生成一个全局唯一标识符。
- 在VirAPI中使用:
{ "guid1": "@guid", // 随机生成一个全局唯一标识符 "guid2": "@guid()", // 同上,随机生成一个全局唯一标识符,若不使用配置参数,可省略括号 }
9. 唯一ID @id( )
- 描述:随机生成一个唯一ID。
- 在VirAPI中使用:
{ "id1": "@id", // 随机生成一个唯一ID "id2": "@id()", // 同上,随机生成一个唯一ID,若不使用配置参数,可省略括号 }
10. 当前时间 @now(unit?, format?)
- 描述:返回当前时间。
- 参数:
- unit:可选,起始单位,以此时为“2020-08-06 23:43:17”为例,如
year
(今年的起始时间,如2020-01-01 00:00:00)、month
(当月的起始时间,如2020-08-01 00:00:00)、week
(本周的起始时间,如2020-08-02 00:00:00)、day
(今天的起始时间,如2020-08-06 00:00:00)、hour
(当前小时的起始时间,如2020-08-06 23:00:00) - format:可选,日期格式类型,如
yyyy-MM-dd HH:mm:ss SS
、yyyy年MM月dd日 HH:mm:ss
- unit:可选,起始单位,以此时为“2020-08-06 23:43:17”为例,如
- 在VirAPI中使用:
{ "now1": "@now", // 返回当前时间,默认格式为:yyyy-MM-dd HH:mm:ss "now2": "@now()", // 同上,返回当前时间,若不使用配置参数,可省略括号 "now3": "@now('year')", // 返回今年的起始时间,如2020-01-01 00:00:00 "now4": "@now('yyyy-MM-dd HH:mm:ss SS')", // 以yyyy-MM-dd HH:mm:ss SS格式返回当前时间 "now5": "@now('day', 'yyyy-MM-dd HH:mm:ss SS')", // 以yyyy-MM-dd HH:mm:ss SS格式返回今天起始时间 }
11. 随机取一个 @pick( arr )
- 描述:随机取数组中的一个值返回。
- 参数:
- arr:目标数据集数组
- 在VirAPI中使用:
{ "value": "@pick(['a', 'b', 'c'])", // 在数组['a', 'b', 'c']中随机取一个数据值 }
11. 生成指定长度或范围长度数组
- 描述:生成指定数据结构的数组列表数据。
- 在VirAPI中使用:
// 生成由2个值为中文单词组成的,键名为tags的数组
{
"tags|2": [ // 2个中文单词组成的数组
"@cword"
]
}
// 生成由0至4个值为中文单词组成的,键名为tags的数组
{
"tags|0-4": [ // 0~4长度的中文单词数组
"@cword"
]
}
// 生成0至10个键名为comments的json数组
{
"comments|0-10": [ // 0~10长度的json数组
{
"user_info": {
"name": "@cname", // 随机中文名称
"avater": "@image" // 图片链接
},
"content": "@cparagraph", // 中文段落
"imgs|0-9": [ // 0~9长度的图片链接数组
"@image"
],
"date": "@datetime" // 日期字符串(如:2020-04-28 20:03:28)
}
]
}
以上即为在VirAPI中可能经常会用到的MockJS语法方法,如需了解更多,可前往MockJS官方文档案例进行查阅。若需了解MockJS在VirAPI上的使用方法,可参考《MockJS在VirAPI上如何使用?》。
如在使用过程中有遇到什么问题也欢迎大家通过Gitter与我们沟通和联系。