Swagger生成了幾百兆的文檔,該轉移陣地了?
- 2019 年 10 月 6 日
- 筆記
流年不利流年不利啊。項目寫的太傻,龐大到生成了幾百兆的Swagger文檔。 通常,有個幾兆就到了忍受極限了,這直接爆出幾百兆。
問題源於這麼一篇文章:小技巧:SpringBoot項目如何讓前端開發提高效率?。其中提到使用swagger可以讓前端、後端、QA、產品互動起來,很多研發已經用了。但有些項目生成的文章忒TM大了(抱歉我控制不住),在讓這些項目愉快的go die之前,還是得想辦法處理呀。
介面減肥
第一就是過濾減肥。 看一下你的Controller里寫的是不是
@RequestMapping
這個註解將會生成7
條api資訊 GET、HEAD、POST、PUT、DELETE、OPTIONS、PATCH
如果你能夠確定調用方法,比如GET,請將註解改成
@GetMapping
不要有循環引用
返回的實體,還有請求的參數,不要循環引用。請幹掉這些程式碼,不要邋遢,設計一點乾淨的api。
轉線下
另一種思路就是把這些api都給搗鼓到線下,倒入到一個統一的地方進行管理。 這些也已經有很多產品了,比如Rap、Nei、YApi。
拿YApi來說(支援源碼搭建),可以輸入相應swagger的地址,進行一次導入,就可以將api定義轉到另一個平台了。
YApi還有許可權管理功能,應該是這裡面做的最Nice的了。如果你想要統一管理、內網隔離,推薦一試。好東西,就不多介紹了。
結尾
轉到線下雖然解決了因為api過大造成的服務不穩定,但api的更新同步會是另外一個問題。
不管採用何種方式,合理簡潔的api設計是首要的。調用方法固定,不循環引用,最重要的,記得分模組哦。