前后端分離的常見開發方式是:
- 后端:接收http請求->根據請求url及params處理對應業務邏輯->將處理結果序列化為json返回
- 前端:發起http請求並傳遞相關參數->獲取返回結果處理相關邏輯
分離的主要目的是讓前后端可以並行的進行工作,彼此之間只需要依賴一份接口文檔
接口文檔可能會使用一些文本工具進行記錄,例如word,excel等
其中記錄的內容可能為請求路徑,請求類型,請求參數,響應參數,請求示例,響應示例,變更記錄等
不過以上方式還存在那么一點不完美,那就是前端需要等待后端開發完接口才能有數據進行測試在此之前只能先畫頁面
這就有可能造成前端要等后端的情況,使工作變為串行
因此我想能否有辦法可以消除這種情況,讓前端不必等待后端
經過一段時間的摸索,我想可以做一個mock server來模擬前端需要的數據
當前端請求某個url時,mock server會在其數據庫中進行查詢,匹配到這個url后就返回默認或者用戶自定義的模擬數據
這樣一來前端就可以在不依賴后端的情況下拿到數據進行測試了
但如果只是僅僅依賴mock server,那么一些已開發的接口將無法得到正常的請求
那么問題就又變成了如何使正常接口與mock接口共存
很容易想到的就是使用nginx反向代理,將未開發完的接口匹配到mock server,剩余的接口匹配正常程序
所以前端開發時自己啟動一個nginx,然后需要mock什么接口自己去配置即可
但是。。。。當接口很多時,前端得自己手動去配置nginx,還要再對nginx進行重啟等等操作,很繁瑣
為了解決這個問題我又想能不能讓這一切自動化的去完成
有一個客戶端程序,自動的對nginx進行相關配置並啟動nginx,將開發中的接口轉發給mock server,將其余接口轉發給正常程序
顯然這個思路是可行的,為了讓程序好用,客戶端制作成了GUI,並且打包成了exe,使以上nginx配置步驟變為一鍵操作
以下是根據以上思路制作完畢的docdoc及dochelper截圖,及一個簡單的演示視頻:
視頻地址:https://www.bilibili.com/video/av46052020
github docdoc:https://github.com/github20120522/docdoc
github dochelper:https://github.com/github20120522/docdochelper