簡介
open-slim-mock是我在開發的一款基於nodejs的服務端程序,用於在app的開發調試階段更好的與後端人員協作,便於前後端分離,快速定位接口問題。經過一年的使用,提高了我們的開發效率。現在代碼經過完全重構,代碼更清晰,功能更強大,現在開業開源出來,用於學習研究。
動機
在日常開發中,遇到一些與開發無關但是非常影響開發效率的事情:
並行開發
經常項目時間被壓縮的很緊,通常一個功能接口和app同時開發,這時候會做好數據結構的約定,造一些mock數據,兩邊獨立開發,寫好後就可以聯調了。
幫我打個包地址是xxx
後端發現自己的功能有問題,又不想寫單元測試(什麼單元測試是什麼),就喜歡找你打一個包,地址寫他的本機地址,這在別人看來舉手之勞的事你不幫?然而打包隨着項目的複雜,越來越耗時不說,地址經常改來改去還容易忙中出錯。
三英戰呂布
項目老闆很重視,給你安排了劉關張三個後臺來寫接口,每人負責一個模塊,這時候要聯調了,發現功能需求要求你去劉那裏拿到A數據,再把A給關那裏拿到B數據,在把B數據提交給張,每個接口運行在不同的測試環境,你怎麼辦?
跨域訪問
app項目包含HTML5頁面,想先在先進的瀏覽器Chrome環境下調試好再集成到app中,發現後臺數據無法訪問,跨域被拒絕,如何解決?
解決之道
- open-slim-mock如何解決並行開發問題?
open-slim-mock就是盛放mock數據而生的,可以進預先準備好的文本、二進制數據作爲結果返回。 - open-slim-mock如何解決幫我打個包地址是xxx問題?
open-slim-mock使用反向代理技術將請求轉發到遠端服務器,在將結果轉發給app。 - open-slim-mock如何解決三英戰呂布問題?
open-slim-mock的反向代理任意顆粒度小到單個請求,即可以對A接口代理到A服務器,B接口代理到B服務器。 - open-slim-mock如何解決跨域訪問問題?
open-slim-mock可以動態配置對響應頭進行注入,強制允許跨域訪問
Q&A
- Q:阿里/騰訊/** 已經有類似項目了,又好又強大
A: 響應號召,研究自主可控的技術,專注代碼之上的思想和解決問題的方法,不被一些KPI驅動的開源項目遮擋了雙眼 - Q: 有bug/缺少xx功能
A: 會盡力修復bug,不會做大而全什麼功能都往裏面加,建議fork。