1. 程式人生 > >RAP一種更高效的前後端介面對接解決方案

RAP一種更高效的前後端介面對接解決方案

RAP一種更高效的前後端介面對接解決方案

96 Rico_wang 關注

2017.11.28 21:58* 字數 1448 閱讀 14348評論 12喜歡 14

我在向小夥伴推薦RAP的時候,有的小夥伴會覺得這個是個玩好意,幫助很大,而另一部分有使用過Mock.js的會說,Mock就挺好了啊。於是就有了這篇文章,一是向大家推廣,二是作為一個快速入門的教程,網上對RAP的教程太少了。

RAP是一個Web介面管理工具,開源免費,介面自動化,MOCK資料自動生成,自動化測試,企業級管理。阿里媽媽MUX團隊出品!阿里巴巴都在用!

使用情景

以往前後端分離開發過程中,會出現這種對話

前端:介面寫好了沒,我著急用,沒這個介面我沒法測功能啊。
後端:別催啊,我資料庫都沒寫好,介面給你也沒用啊。
=>Mock.js出現後
後端:你先要哪個介面?
前端:不用,我自己都虛擬好了資料了
···
後端:這就是你做的介面,怎麼這麼多跟我寫的不一樣,這個引數也不對啊

Mock.js的出現解決了前端離開後端就沒法請求資料的問題,但也出現了新的問題,前端在生產環境中編寫的Mock虛擬資料程式碼,在後期與後端對接時,面對著如何處理這些程式碼的問題,專案切換,又得重新思考Mock程式碼編寫。而且,就算前端按照前期和後端約定好的規則編寫引數,響應資料等,還是無法保證後端會不會在寫程式碼過程中,出現一些手滑的操作,可能他自己都不知道。
而現在,RAP是一個新的解決方案,將前端後端拉倒一個團隊倉庫中,共享一個倉庫,無論是URL地址,還是請求需要的引數,在團隊倉庫中雙方都可以管理,並且可以記錄團隊成員修改了哪些介面,看最後會是誰背鍋··手動滑稽。
前後同一套介面模板,RAP一種更高效的前後端協作方式

RAP五天前釋出了RAP2,相對於之前的版本,在介面和操作上做了很大的優化,介面初步體驗也更穩定了寫,
不得不吐槽上一個版本RAP,各種靈異操作。
####推薦理由
  - 支援mock.js語法:RAP本身基於mcok.js
  - 支援介面管理:可管理url地址,不同模組分類。
  - 支援團隊協作:擁有團隊倉庫
  - 支援歷史修改操作檢視:可檢視介面修改情況,但不支援操作回溯。
  - 介面共享:不需要重複編寫介面
  - 自動化測試:一鍵測試介面情況
  - JS外掛
####文章目錄
    - 介面介紹
    - RAP語法規則
    - RAP使用
    - 使用建議

手摸手使用教程

跳過部分:註冊=>登入 這裡又得吐槽一下上一個版本登入,登入後一段時間就得重新登入,驗證碼賊煩,新版本已改善。

介面介紹

  • 導航欄介面

     

    • 首頁:登入後展示操作記錄,僅為記錄,無回溯功能
    • 倉庫:個人倉庫,團隊倉庫列表及入口處,可以在此處新建個人倉庫
    • 團隊:展示已加入團隊,可新建團隊,進入團隊中可檢視團隊倉庫
    • 介面:一些介面使用資訊
    • 狀態: RAP服務使用狀態資料圖表展示,主要是使用者數量增長,倉庫活躍度排名
  • 倉庫介面 個人倉庫和團隊倉庫都一樣

     

    • 藍色 :倉庫名,為倉庫入口,點選可進入編輯詳情
    • 黑色:生成該倉庫js 外掛檔案
    • 紅色:編輯倉庫資訊
    • 個人倉庫有刪除按鈕,團隊倉庫沒有,只有刪除團隊選項。
  • 倉庫資訊編輯介面

     

    • 新增倉庫成員,修改倉庫名稱及描述
    • 協同倉庫,可以將其他倉庫的介面進行共享到當前編輯的倉庫。注:每個倉庫,每個介面都有它獨特的ID,ID為自動生成,無法手動修改。
  • 倉庫設定介面

     

    • 編輯:同上倉庫資訊編輯
    • 外掛:介面外掛使用詳細方式,相當於教程了
    • 資料:整個倉庫的所有資訊,包括上面說的倉庫ID ,介面ID等,為JSON資料
    • 測試:測試當前編寫後接口響應內容,包括所有已編寫介面。
    • 新建模組:重新建一個功能塊,相當於一級目錄
    • 新建介面:在此處新建介面,點選後會出現彈框,填寫介面名稱,URL
    • 啟用介面可編輯狀態:
      • 新建:新建請求引數或響應內容
      • 匯入:通過JSON匯入引數設定
      • 預覽:編輯內容發生改變時,Mock資料也會發生改變
  • 新建引數介面

     

    • 名稱:引數名
    • 型別:描述引數型別
    • 生成規則:填寫Mock語法規則
    • 初始值:初始值
    • 簡介:

RAP語法規則

RAP是基於 MOCK的,所以語法上是跟MOCK是一樣的,只是填寫位置發生了改變,

Mock.js寫法
變數名     備註
id|1-100     

// 表示id從100開始,每次加1

名稱 型別 生成規則 初始值 生成結果 簡介
id string 2-10 ass assassass 字串重複2-10次不等
name string   @order[3,13,1,3] 2 在陣列中隨即選取一個
datetime string   @datetime("yyMddd") 204040722 生成時間具體格式請檢視Mock文件
re RegExp   /201[7-7][0-1][0-9][0-2][0-9]/ 20170706 通過正則資料

以下圖片列出了本人記錄的常用書寫方式,以及生成的資料格式

 

 

RAP使用

  • 介面形式:http://rap2api.taobao.org/app/mock/508/GET/login
    其中508為倉庫ID,不同倉庫可以通過新增協同倉庫達到介面複用的作用,可新增多個ID,不同ID逗號隔開。
  • 使用方式可檢視介面

使用建議及技巧

  • 最好在團隊中新建倉庫,拉上後端的小夥伴一起RAP才是利器。
  • 協同倉庫是一個很有用的功能,要善於運用,相當於倉庫複製。
  • 介面詳情最好寫一些需要注意的內容,給別人看的。
  •  

總結

RAP給前後端開發者一種更好更透明的協同開發方式,前端也可以讓自己專案程式碼中不出現虛擬資料這種無用程式碼,專案切換以及迭代過程中RAP讓介面更加靈活,不要僅僅滿足於前端可以寫幾個虛擬資料,如何無痛對接後端接口才是最終的目的。

參考文件
Mock.js文件
RAP2官網
RAP使用者手冊【更新2015/7/21】