在很早以前公司里面就接入了rap在線管理接口文檔平臺(tái),通過圖形化書寫接口文檔,給前端同事使用。但是之前也僅僅是用于寫接口文檔,從來沒有研究過它還有其他用途。最近與自己合作的一個(gè)前端同事說,你為啥不利用好rap來寫接口文檔,它會(huì)自動(dòng)生成mock數(shù)據(jù),我們就不用將rap默認(rèn)生成的數(shù)據(jù)修改后,再本地測(cè)試一下。弄完之后再與你們聯(lián)調(diào)。今兒就花了2個(gè)小時(shí)左右研究一下rap,順藤摸瓜出來mock。下面簡單介紹一下,mock以及如何在rap中使用mock,生成比較好的模擬數(shù)據(jù),提高前后端協(xié)作效率。
mock.js[1]
mock.js
隨機(jī)生成數(shù)據(jù),讓前端開發(fā)人員在開發(fā)階段時(shí)獨(dú)立于后端,使用mockjs可以自測(cè)代碼。
語法規(guī)范
- 數(shù)據(jù)模板定義規(guī)范(DTD:Data Template Definition)
- 數(shù)據(jù)占位符規(guī)范(DPD: Data Placeholder definition)
數(shù)據(jù)模板定義規(guī)范
格式
'name|rule':value
(屬性名|生成規(guī)則:屬性值),其中生成規(guī)則是可選的
生成規(guī)則
-
7種生成規(guī)則
'name|min-max':value
'name|count':value
'name|min-max.dmin-dmax':value
'name|+step':value
'name|min-max.dcount':value
'name|count.dmin-dmax':value
'name|count.dcount':value
-
生成規(guī)則的含義依賴屬性值的類型才能確認(rèn),這一點(diǎn)特別重要。也是mock的關(guān)鍵所在。
比如:-
'name|min-max':string
: 通過重復(fù)[min,max]次string生成新字符串。 -
'name|min-max':number
: 生成一個(gè)number,返回在[min,max]。
-
屬性值
- 屬性值可含@(占位符)
- 指定最終的值和類型
- 屬性值類型
- String
- Number
- Boolean
- Object
- Array
- Function
- RegExp
- Path
學(xué)過js看著十分簡單,只是多了RegExp 和 Path,其他簡直一模一樣。
數(shù)據(jù)占位符定義規(guī)范DPD
占位符
1.占位符只是在屬性字符串中占個(gè)位置,并不出現(xiàn)在最終的屬性值中
2.格式:@占位符或者@占位符(參數(shù)[,參數(shù)])
3.占位符
- 用@標(biāo)識(shí)后面的字符串是占位符
- 引用的是
Mock.Random
中的方法 - 擴(kuò)展定義占位符:
Mock.Random.extend()
- 引用數(shù)據(jù)模板中的屬性
- 支持相對(duì)路徑和絕對(duì)路徑
4.數(shù)據(jù)占位符類型
數(shù)據(jù)占位符一共有如下幾種類型:
- Basic
- Date
- Image
- Color
- Text
- Name
- Web
- Address
- Helper
- Miscellaneous
具體mock語法示例,請(qǐng)參考mock示例[2],里面詳細(xì)的介紹了各個(gè)類型使用方法。
rap寫接口文檔中運(yùn)用mock[3]
什么是rap
RAP是前后端溝通橋梁的通信接口,是一個(gè)圖形化的接口文檔管理的軟件。它可以自動(dòng)生成mock數(shù)據(jù),在開發(fā)時(shí)候前端同事可以不依賴于后端的數(shù)據(jù),而是根據(jù)mock規(guī)則自動(dòng)生成的模擬數(shù)據(jù)進(jìn)行測(cè)試。
怎么在rap中是使用mock
有很多資料,且是圖文并茂寫博文[4][5]。總結(jié)起來,在rap中運(yùn)用mock方法如下:
- 左邊變量寫
name|rule
,此處相當(dāng)于就是mock中的'name|rule'
; - 右邊備注寫
@mock=value
。其語法規(guī)則mock一樣。