使用RAP2和Mock.JS實現Web API接口的數據模擬和測試

最近一直在思考如何對Web API的其接口數據進行獨立開發的問題,隨着Web API的愈來愈普遍應用,不少開發也要求前端後端分離,例如統一的Web API接口後,Winform團隊、Web前端團隊、微信小程序或者APP團隊你們能夠同步開發,在最初約定一些接口的輸入JSON數據和輸出JSON數據,可是隨着項目的進度開展,這些數據結構一直有所變化,那麼咱們模擬的JSON數據格式也須要協同變化,可是很不幸既然你們忙着開發,接口協調的事情確定優先級沒那麼高,即便每次記得協調接口數據,也不必定可以徹底一致。html

在Web API端也就是後端沒有徹底作好的狀況下,咱們不可能給出全部接口的輸入輸出JSON格式,那麼咱們是否能夠考慮採用折中模擬數據接口的方式來提供,而且可以提供比較易讀、易維護的處理方式呢?答案是確定有的,結合RAP2和Mock.js二者的特色,能夠較爲方便的模擬出咱們須要接口的URL、輸入參數、輸出參數等信息。前端

RAP2是一個Web接口管理工具,開源免費,接口自動化,MOCK數據自動生成,自動化測試,企業級管理。git

Mock.js的出現解決了前端離開後端就無法請求數據的問題,但也出現了新的問題,就是在切換生產環境的時候,模擬的數據可能和接口又發生不一樣步的狀況。github

RAP2是一個新的解決方案,將前端後端拉倒一個團隊倉庫中,共享一個倉庫,不管是URL地址,仍是請求須要的參數,在團隊倉庫中雙方均可以管理,而且能夠記錄團隊成員修改了哪些接口,整合到生產環境的時候,能夠比較完美的切換,同步性較好!小程序

相關網站資源:後端

一、RAP2建立接口

打開網站http://rap2.taobao.org/ ,註冊一個用戶帳號,並建立本身的模塊和接口,以下所示微信小程序

默認有一個示例接口指引咱們作相關的參數或者響應內容微信

對每一個參數,均可以使用Mock規則進行生成值,以下界面所示數據結構

除了示例,咱們也能夠建立本身的模塊和接口,以下所示咱們建立一個用戶管理的模塊,以及兩個接口。工具

獲取用戶的接口定義以下所示。

這個URL地址是咱們邏輯上的相對地址,實際在使用的時候,咱們加上一個基地址就能夠了,在RAP2 它也是一個相對地址,測試接口的地址也是加上一個基礎地址,這樣咱們實際開發的時候,把這部分基礎地址替換爲生產環境的地址便可順利切換過去了。

這個接口實際返回的JSON數據格式就是咱們約定好的JSON格式了,若是咱們有變化,你們參考這個中間的平臺就能夠了,溝通時比較方便,也能夠對比那些字段參數變化調整了,這樣先後端就有了一個參考的中間平臺,一致性較好。

 

二、接口參數定義和Mock變量使用

那麼這些JSON數據是如何來的,咱們實際上是填寫了一些變量,讓它自動生成的數據的,這個也是Mock.js的功勞吧。RAP2集成了MockJS的不少變量使用,參考着使用就能夠構建不少不同的數據,很是方便。

下面列出個人一些輸入、輸入的變量內容。

輸入的參數,定義以下:

響應的輸出參數以下定義。

得到的輸出自動生成的JSON數據以下所示。

這個就是咱們使用Mock變量的好處,自動根據規則填充,上面我使用了各類變量來定義數據,若是你須要瞭解Mock的變量,能夠結合Mock的變量來測試便可。具體參考下面說明。

http://mockjs.com/examples.html

上面連接列出了Mock的兩項定義:數據模板定義和數據佔位符定義,能夠根據狀況用不一樣的定義。我更側向於使用後者,方便快捷。

RAP2給先後端開發者一種更好更透明的協同開發方式,一個負責維護接口、一個負責參考修改調用,你們相互配合,其樂融融。
關於RAP2的功能好像還有不少,不過咱們使用它最主要的目的是解決模擬API接口和協同性的問題,這個大原則是它的主要目的,基於RAP2和Mock.js的結合,咱們能夠解放頻繁溝通而得不到接口一致性問題的問題,從而實現更好從調試環境到生產環境的切換。

甚至更好的方案是咱們 在Web API接口開發的初期,先花點功夫來定義好全部的接口輸入輸出,整理一個你們認爲比較好的接口規範後,再開始Web API的編碼,這樣確定後期開發是事半功倍,並且前端也能夠很快對接。

 

 

出處:https://www.cnblogs.com/wuhuacong/p/10213540.html

相關文章
相關標籤/搜索