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設計是首要的。調用方法固定,不循環引用,最重要的,記得分模塊哦。