通過Swagger文檔生成前端service文件,提升前端開發效率


在企業級的項目開發過程中,一般會采用前后端分離的開發方式,前后端通過api接口進行通信,所以接口文檔就顯得十分的重要。

目前大多數的公司都會引入Swagger來自動生成文檔,大大提高了前后端分離開發的效率。

但是在前端開發過程中還是會出現一些問題,比如:

  • 由於需求的頻繁變更,接口也會相應的改變
  • 多人協作時,每個人的代碼風格不同,導致service文件非常混亂,不易於維護
  • 新人接手時,不清楚接口有沒有定義,導致重復定義接口
  • 每次定義接口都是重復性工作,消耗鼠標鍵盤耐久

所以,如果能把這種重復性的工作交給機器做就好了,既能保證速度,也能保證質量,何樂而不為呢。

在github上找了一下這類工具,發現了umijs有一款插件叫openapi,可以實現生成service文件的功能。但是在使用過后發現這個工具存在不少問題,比如:對中文的支持不太好,如果Swagger文檔中出現了中文會報錯。而且它只支持最新的Swagger文檔規范(OAS3),公司里用的還是舊的OAS2規范。

所以,我決定自己造一個輪子。

我把這個工具分成三個步驟:

  1. 從Swagger文檔的url或者json中獲取OAS2/OAS3數據
  2. 通過OAS2/OAS3數據生成一個通用的數據結構
  3. 通過js模板庫把通用的數據結構轉換成service文件

生成service步驟

我把這個工具命名為openapi-tool,通過名字就可以看出,我並不想它只能做生成service的工作,他應該是一個圍繞着OpenApi的工具。所以,我加入了插件機制,並參考了Vue插件系統的設計,使得學習成本更低。通過插件系統,可以對接Mock平台,也可以做自動化接口測試等進一步提高開發效率的功能。

下面是使用openapi-tool的一個栗子:

生成的結果如下:

└── service
    ├── api.ts
    ├── login.ts
    ├── rule.t
    └── typings.ts

可以看到,生成ts文件時會自動生成對應的類型文件,並自動引入依賴。如果想生成js文件,只需要把typescript設置為false即可。

下面是項目的github地址,歡迎提issue,如果你喜歡這個項目的話,請給我個star吧。

openapi-tool


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM