VirAPI新手入门05-MockJS方法使用大全

发布在VirAPI官网

本篇文章将列举MockJS在VirAP经常会使用到的方法,及如何通过MockJS来定义响应的虚拟数据类型与结构。

基本数据类型

1. 布尔值 @boolean()

{
    "boolean1": "@boolean",     // 随机生成一个整数
    "boolean2": "@boolean()",     // 同上,随机生成一个整数,若不使用配置参数,可省略括号
}

2. 整数 @integer(min?, max?)

{
    "int1": "@integer",     // 随机生成一个整数
    "int2": "@integer()",     // 同上,随机生成一个整数,若不使用配置参数,可省略括号
    "int3": "@integer(10)",     // 随机生成一个大于10的整数
    "int4": "@integer(10, 100)",     // 随机生成一个取值在10到100之间的整数
}

3. 浮点数 @float(min?, max?, dmin?, dmax?)

{
    "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?)

{
    "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?)

{
    "date1": "@date",     // 随机生成一个日期值,默认日期格式为:yyyy-MM-dd
    "date2": "@date()",     // 同上,随机生成一个日期值,若不使用配置参数,可省略括号
    "date3": "@date('yy-MM-dd')",     // 随机生成一个格式为yy-MM-dd的日期
}

6. 时间 @time(format?)

{
    "time1": "@time",     // 随机生成一个时间值,默认时间格式为:HH:mm:ss
    "time2": "@time()",     // 同上,随机生成一个时间值,若不使用配置参数,可省略括号
    "time3": "@time('HH:mm:ss')",     // 随机生成一个格式为HH:mm:ss的时间
}

7. 日期时间 @datetime(format?)

{
    "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? )

{
    "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? )

{
    "paragraph1": "@paragraph",     // 随机生成一个文本英文段落
    "paragraph2": "@paragraph()",     // 同上,随机生成一个文本英文段落,若不使用配置参数,可省略括号
    "paragraph3": "@cparagraph(2)",     // 随机生成一个有两个段落的中文文本
    "paragraph4": "@paragraph(1, 3)",     // 随机生成一个有1至3个段落的英文文本
}

10. 句子 @sentence( min?, max? ) @sentence( len? ) @csentence( min?, max? ) @csentence( len? )

{
    "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? )

{
    "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? )

{
    "title1": "@title",     // 随机生成一个英文标题文本
    "title2": "@title()",     // 同上,随机生成一个英文标题文本,若不使用配置参数,可省略括号
    "title3": "@ctitle(2)",     // 随机生成一条由2个中文词汇组成标题文本
    "title4": "@title(3, 5)",     // 随机生成一条由3至5个英文词汇组成标题文本
}

2. 姓名 @name( middle? ) @cname()

{
    "name1": "@name",     // 随机生成一个英文姓名
    "name2": "@name()",     // 同上,随机生成一个英文姓名,若不使用配置参数,可省略括号
    "name3": "@name(true)",     // 随机生成一个有中间名的英文姓名
    "name4": "@cname",     // 随机生成一个中文姓名
}

3. URL @url( protocol? )

{
    "url1": "@url",     // 随机生成一个网络协议URL
    "url2": "@url()",     // 同上,随机生成一个网络协议URL,若不使用配置参数,可省略括号
    "url3": "@url('http')",     // 随机生成一个http网络协议的URL
}

4. 电子邮箱 @email( )

{
    "email1": "@email",     // 随机生成一个电子邮箱
    "email2": "@email()",     // 同上,随机生成一个电子邮箱,若不使用配置参数,可省略括号
}

5. IP @ip( )

{
    "ip1": "@ip",     // 随机生成一个IP
    "ip2": "@ip()",     // 同上,随机生成一个IP,若不使用配置参数,可省略括号
}

6. 省份 @province( )

{
    "province1": "@province",     // 随机生成一个省份名
    "province2": "@province()",     // 同上,随机生成一个省份名,若不使用配置参数,可省略括号
}

7. 城市 @city( prefix? )

{
    "city1": "@city",     // 随机生成一个城市名
    "city2": "@city()",     // 同上,随机生成一个城市名,若不使用配置参数,可省略括号
    "city2": "@city(ture)",     // 随机生成一个包含省份名的城市
}

8. 全局唯一标识符 @guid( )

{
    "guid1": "@guid",     // 随机生成一个全局唯一标识符
    "guid2": "@guid()",     // 同上,随机生成一个全局唯一标识符,若不使用配置参数,可省略括号
}

9. 唯一ID @id( )

{
    "id1": "@id",     // 随机生成一个唯一ID
    "id2": "@id()",     // 同上,随机生成一个唯一ID,若不使用配置参数,可省略括号
}

10. 当前时间 @now(unit?, format?)

{
    "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 )

{
    "value": "@pick(['a', 'b', 'c'])",     // 在数组['a', 'b', 'c']中随机取一个数据值
}

11. 生成指定长度或范围长度数组

// 生成由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与我们沟通和联系。