RAP Mock.js语法规范
Mock.js 的語法規(guī)范包括兩部分:
- 數(shù)據(jù)模板定義規(guī)范(Data Template Definition,DTD)
- 數(shù)據(jù)占位符定義規(guī)范(Data Placeholder Definition,DPD)
1.數(shù)據(jù)模板定義規(guī)范 DTD
數(shù)據(jù)模板中的每個(gè)屬性由 3 部分構(gòu)成:屬性名、生成規(guī)則、屬性值:
// 屬性名 name // 生成規(guī)則 rule // 屬性值 value 'name|rule': value
注意:
- 屬性名?和?生成規(guī)則?之間用豎線?
|?分隔。 - 生成規(guī)則?是可選的。
- 生成規(guī)則?有 7 種格式:生成規(guī)則?的 含義 需要依賴?屬性值的類型?才能確定。
- 'name|min-max': value
- 'name|count': value
- 'name|min-max.dmin-dmax': value
- 'name|min-max.dcount': value
- 'name|count.dmin-dmax': value
- 'name|count.dcount': value
- 'name|+step': value
- 屬性值?中可以含有?
@占位符。 - 屬性值?還指定了最終值的初始值和類型。
2.生成規(guī)則和示例
1. 屬性值是字符串?String
-
'name|min-max': string
通過重復(fù)?
string?生成一個(gè)字符串,重復(fù)次數(shù)大于等于?min,小于等于?max。 -
'name|count': string
通過重復(fù)?
string?生成一個(gè)字符串,重復(fù)次數(shù)等于?count。
2. 屬性值是數(shù)字?Number
-
'name|+1': number屬性值自動(dòng)加 1,初始值為?
number。 -
'name|min-max': number生成一個(gè)大于等于?
min、小于等于?max?的整數(shù),屬性值?number?只是用來確定類型。 -
'name|min-max.dmin-dmax': number生成一個(gè)浮點(diǎn)數(shù),整數(shù)部分大于等于?
min、小于等于?max,小數(shù)部分保留?dmin?到?dmax?位。
Mock.mock({'number1|1-100.1-10': 1,'number2|123.1-10': 1,'number3|123.3': 1,'number4|123.10': 1.123 }) // => {"number1": 12.92,"number2": 123.51,"number3": 123.777,"number4": 123.1231091814 }
3. 屬性值是布爾型?Boolean
-
'name|1': boolean隨機(jī)生成一個(gè)布爾值,值為 true 的概率是 1/2,值為 false 的概率同樣是 1/2。
-
'name|min-max': value隨機(jī)生成一個(gè)布爾值,值為?
value?的概率是?min / (min + max),值為?!value?的概率是?max / (min + max)。
4. 屬性值是對(duì)象?Object
-
'name|count': object從屬性值?
object?中隨機(jī)選取?count?個(gè)屬性。 -
'name|min-max': object從屬性值?
object?中隨機(jī)選取?min?到?max?個(gè)屬性。
5. 屬性值是數(shù)組?Array
-
'name|1': array從屬性值?
array?中隨機(jī)選取 1 個(gè)元素,作為最終值。 -
'name|+1': array從屬性值?
array?中順序選取 1 個(gè)元素,作為最終值。 -
'name|min-max': array通過重復(fù)屬性值?
array?生成一個(gè)新數(shù)組,重復(fù)次數(shù)大于等于?min,小于等于?max。 -
'name|count': array通過重復(fù)屬性值?
array?生成一個(gè)新數(shù)組,重復(fù)次數(shù)為?count。
6. 屬性值是函數(shù)?Function
-
'name': function執(zhí)行函數(shù)?
function,取其返回值作為最終的屬性值,函數(shù)的上下文為屬性?'name'?所在的對(duì)象。
7. 屬性值是正則表達(dá)式?RegExp
-
'name': regexp根據(jù)正則表達(dá)式?
regexp?反向生成可以匹配它的字符串。用于生成自定義格式的字符串。Mock.mock({'regexp1': /[a-z][A-Z][0-9]/,'regexp2': /\w\W\s\S\d\D/,'regexp3': /\d{5,10}/ }) // => {"regexp1": "pJ7","regexp2": "F)\fp1G","regexp3": "561659409" }
3.數(shù)據(jù)占位符定義規(guī)范 DPD
占位符?只是在屬性值字符串中占個(gè)位置,并不出現(xiàn)在最終的屬性值中。
占位符?的格式為:
@占位符
@占位符(參數(shù) [, 參數(shù)])
注意:
- 用?
@?來標(biāo)識(shí)其后的字符串是?占位符。 - 占位符?引用的是?
Mock.Random?中的方法。 - 通過?
Mock.Random.extend()?來擴(kuò)展自定義占位符。 - 占位符?也可以引用?數(shù)據(jù)模板?中的屬性。
- 占位符?會(huì)優(yōu)先引用?數(shù)據(jù)模板?中的屬性。
- 占位符?支持?相對(duì)路徑?和?絕對(duì)路徑。
Mock.mock({name: {first: '@FIRST',middle: '@FIRST',last: '@LAST',full: '@first @middle @last'} }) // => {"name": {"first": "Charles","middle": "Brenda","last": "Lopez","full": "Charles Brenda Lopez"} }
轉(zhuǎn)載于:https://www.cnblogs.com/wysk/p/7598387.html
總結(jié)
以上是生活随笔為你收集整理的RAP Mock.js语法规范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DotNet Core Console
- 下一篇: 炒萝卜切切切是什么歌呢