【Swagger】可能是目前最好的 Spring Boot 集成 swagger 的方案

【Swagger】可能是目前最好的Spring Boot集成 swagger 的方案

  據說程序員最恨的兩件事:一件是別人不寫文檔,另一件是自己寫文檔。

  可見文檔真的是程序員生活中相愛相殺的存在。一方面對於使用者來說,一份全面、準確的文檔簡直就是旅行時的地圖,烹飪時的菜譜,通關時的攻略。可以極大的提高對接的效率與儘可能的減少踩坑的概率。然而,一份全面而又準確的文檔談何容易。

  以接口文檔來說,程序員不想寫的原因跟寫單元測試一樣,很大程序上在於它完完全全是一個體力活,毫無創造性可言,枯燥並且乏味。更要緊的它不是一次性寫完就可以了,還需要不停的維護,當你的業務變更進而導致代碼變動,使得請求值、響應值、接口名稱、字段註釋、校驗信息。。。。。都可能會修改。這個時候接口文檔就要同步更新。否則它就會變的不準確了。如果經常對接接口的同學可能深有體會,這不光出現於公司內部,對接外部接口,或提供外部接口不時有這樣的問題。

  天下苦接口文檔久矣!突然有一天,一個頭戴絲襪,氣宇軒昂的大俠出現,改變了這個局面。他通過一套自創的註解,就可以自動生成一個在線的接口文檔,而且隨着代碼的變更,它也會跟着變化。極大的減少了人們的工作量。爲表達對於這位英雄的敬意,江湖人稱--絲襪哥(Swagger音譯)。

  一個典型的生成後 swagger 的接口文檔頁面如上圖所示。關於絲襪哥的傳奇故事,我們今天就說到這裏。通過圖片其實可以看出原生的界面、功能還是比較有限的。首先沒有一個登錄界面,基本上在使用時沒幾個人改 swagger 的默認地址。所以別人發現你的接口地址很容易訪問到你的 swagger 頁面,這就帶來了安全風險。另一點就是這個界面,怎麼說呢,至少不是我喜歡的款。還是一點就是直接對接起 Spring Boot 還是有點麻煩的,各種 bean 要手動配置,一點也不 Spring Boot。

  凡此種種,終於有一天。在 github 閒逛時,發現了一個不錯的 swagger 的工具包,一用就愛不釋手。項目地址下面就演示一下如何使用。

引入依賴

<dependency>
    <groupId>com.battcn</groupId>
    <artifactId>swagger-spring-boot-starter</artifactId>
    <version>2.1.5-RELEASE</version>
</dependency>

  2.1.5-RELEASE是當前的最新版,後續版本大家可以在項目地址上去看。

配置篇

spring:
  swagger:
    enabled: true

  配置結束了,如果你只想用最基本的 swagger 的功能的話。訪問http://{host:port}/swagger-ui.html後會有如下界面  該項目的 UI 是使用 Vue 重寫的較原版無論是顏值還是功能都有很大的提升。比如添加了搜索、接口統計等很多實用功能。如果我們想開啓登錄驗證,防止接口文檔被外部人員訪問到,只要添加三條配置就可以了。

spring:
  swagger:
    enabled: true
    security:
      filter-plugin: true
      username: kiwi
      password: 123456

  我們再次訪問接口頁面,界面被攔截了,變成了如下登錄界面。  輸入配置的賬號與密碼,又見到了熟悉的接口頁面了。

尾聲

  是不是感覺很方便,很 easy。其實還有很多功能,因爲篇幅有限,更重要是作者本身已經寫了很好的使用文檔,沒有必要在本文再一一列舉出來(好吧,其實是我懶),大家可以到項目頁面接着學習。另外在作者的頁面可以看到他本人的博客地址,是一個寶藏博主哦!

關注公衆號「KIWI的碎碎念」,分享的不僅僅是技術

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章