今天我想從一個真實的案例來和你們聊聊咱們團隊是如何在開發過程當中作接口管理這一塊的。前端
咱們公司雖然人數將近100了,可是技術團隊還算是一個初創團隊,主打產品一個互聯網駕培app,可是有不少衍生產品,好比給駕校用的駕校管理後臺,給客服用的客服管理後臺,給咱們本身用的運營總後臺。咱們技術部麻雀雖小五腑俱全,後端,前端,app開發人員應有盡有,因此咱們在作系統開發的時候就用了先後端分離開發的模式,前端有專門的h5開發人員和js開發人員組成,h5專門負責編寫頁面樣式,而js開發人員專門負責和後端進行數據交互,這個數據交互的橋樑就是接口,後端人員只要開發接口便可。同時,在個人推廣下,後端不少業務從java轉變到了輕量級的nodejs,前端從jquery逐漸向組件化,mvvm靠攏,一段時間相互合做分工下來,效率提高很高,雖然有過很多坑,好比cors,首屏渲染效率等,可是都一一踩過,也算收貨很多,這些以後都會和你們作詳盡的分享。java
首先在工具的選擇上,咱們使用了SBDoc來做爲咱們的接口管理平臺,由於當初開發它的時候就是爲了解決先後端在接口交流問題上的不順暢。node
項目啓動階段:jquery
這個階段咱們首先在SBDoc上面新建一個項目git
創建好項目後,咱們會把組裏面的成員拉進來,而後分配好不一樣的權限,後臺開發的分配管理員權限,能夠增刪改查項目接口,而前端開發的分配觀察者權限,只能查看和測試接口,不能增刪改接口信息。github
每一個項目的開發都對應着相應的環境,咱們團隊的項目有測試環境,對等環境和生產環境三種,每種環境下接口的根url都同樣,可是後面接口路徑是同樣的,在SBDoc裏,根url咱們稱做爲BaseUrl,因此咱們還須要設置一下BaseUrlweb
2.項目開發階段數據庫
首先創建完項目之後,在每個項目項目下會有兩個默認的分組,一個是回收站,用於存放刪除的接口信息,一個是未命名的分組,須要你從新命名。後端
由於咱們團隊是先後端分離開發,因此後端開發的任務相對來講仍是比較輕的,對於後端開發來講只須要設計好數據庫,而後定義好接口文檔,開始編碼就能夠了,使用SBDoc的優點就是實時編寫實時預覽實時測試,同時支持內網環境。瀏覽器
在上圖中,咱們看到了,咱們只定義了輸入參數,沒有定義輸出參數,對於開發前期來講,參數可能會常常變化,並且輸出不穩定,因此咱們在SBDoc裏面添加一個功能就是能夠根據測試時候輸入和輸出參數動態的生成接口文檔信息。
這樣的話整個接口文檔的編寫就很是直觀簡潔,並且很智能,一旦接口在開發中有任何改動,均可以自動的生成新的文檔信息。下面是完整的預覽界面
以上只是文檔編寫功能的冰山一角,SBDoc在文件上傳,接口字段加密,Raw數據發送,代碼注入等功能上一樣也很出色。
值得一提的是,雖然市面上有很多同類產品,可是他們在調試接口這一塊都是基於web本地環境的,因此避免不了要安裝插件,不一樣瀏覽器的兼容也是一個問題,SBDoc採用的是後端proxy代理模式,全部的接口數據都是經過SBDoc自身的後端進行透明代理,解決了不少其餘產品難以解決的問題,同時更強大,更靈活,可配置性更高。
話說回來,在開發的時候前端每每都會有一個痛點,咱們以前每次在先後端分離開發的時候,前端老是要等待後端的接口開發完成才能進行開始前端頁面的數據填充,邏輯編寫,這樣耗費了不少時間精力,有沒有辦法達到先後端並行開發呢,答案是確定的,就是mock,什麼是mock,就是根據必定的規則生成假數據給前端返回,那麼SBDoc也集成了mock的功能,同時更簡單,更強大~
上圖就是在接口編輯的時候定好了mock規則,而後每一個接口都有一個選項,開發狀態,分爲開發中和開發完成,而每個項目也都有本身專屬的mock server地址,前端須要作的就是在前端工程裏將根url地址改爲SBDoc提供給你的mock地址,當你運行工程的時候,SBDoc會在背後判斷你請求的每一個接口狀態 ,若是他是開發中,那麼就會返回定義好規則的mock數據,若是是開發完成,那麼就會去請求真實的地址返回真實的數據。
3.項目開發完成
項目開發完成,那麼進入的就是測試階段,人工測試?nonono,SBDoc提供了智能化一體式的自動化測試,根據您的測試需求隨意迴歸,大大減輕了測試成本,目前該功能正在內測中,敬請期待!
以上介紹的只是咱們團隊在實踐SBDoc的過程當中的冰山一角,更多更強大的功能還期待你們的使用。
接口管理看似簡單,實際上裏面有不少學問,而咱們團隊也是伴隨着SBDoc的完善一同成長起來,因此我以爲必定也有更多的團隊和咱們同樣須要一個強大簡單的管理工具來提高咱們的開發效率,減小咱們的調試時間,因此我將SBDoc的源碼所有開放出來,掛在了github上面,而且提供了很是簡單的本地部署方案,歡迎各位多提建議,一同進步!
SBDoc線上地址:http://sbdoc.cn 開源地址:https://git.oschina.net/sx1989827/SBDoc