SpringBoot-Swagger整合zuul智能列表
簡介
可能大家都有用過swagger,可以通過ui頁面顯示接口信息,快速和前端進行聯調。
現在基本都是多模塊微服務化,每個服務都有這樣的ui頁面也是很不方便,swagger 也可以聚合在網關頁面。
有開發過微服務的小伙伴應該體驗過。當微服務模塊多的情況下,每個模塊都需要配置這樣的一個類進行加載 swagger 。造成每個模塊都存在大致一樣的 SwaggerConfig ,極端的情況下,有些朋友復制其他模塊的 SwaggerConfig 進行改造之后,發現仍然加載不出 swagger 的情況,造成明明是復制的,為何還加載不出,排查此bug極其費時間。
在此之上,可以構建出一個 swagger-starter 模塊,只需要引用一個 jar ,加載一些特殊的配置,就可以快速地使用到 swagger 的部分功能了。
功能使用
添加依賴
<dependency>
<groupId>com.purgeteam</groupId>
<artifactId>swagger-spring-boot-starter<factId>
<version>0.1.2.RELEASE</version>
</dependency>
配置swagger.properties文件
在自己項目模塊的resources目錄下 創建swagger.properties配置
swagger.basePackage="swagger掃描項目包路徑"
swagger.title="swagger網頁顯示標題"
swagger.description="swagger網頁顯示介紹"
@EnableSwaggerPlugins注解。
@EnableSwaggerPlugins
@SpringBootApplication
public class FrontDemoApplication {
public static void main(String[] args) {
SpringApplication.run(FrontDemoApplication.class, args);
}
}
訪問http://ip:端口/swagger-ui.html檢查swagger-ui是否正常。

Zuul網關集成
做完上面步驟一個單體服務已經完成了 swagger 的配置。
集成到 zuul 網關上還需要配置其他的集成配置。
不過使用 swagger-spring-boot-starter 之后,流程變得很輕松。
只需要添加下面 @EnableSwaggerZuul 注解即可完成集成動作。
@EnableSwaggerZuul
@SpringBootApplication
public class ZuulApplication {
public static void main(String[] args) {
SpringApplication.run(ZuulApplication.class, args);
}
}
訪問http://ip:端口/swagger-ui.html檢查swagger-ui是否正常。

狀態支持
在 Select a spec 選擇框里可以選擇網關下的微服務列表進行聚合展示。
這里也支持了服務狀態顯示。
health > "用戶服務"(user)
health > "認證服務"(auth)
sick > front-demo(已下線)
sick > giant-demo(已下線)
這里的 用戶服務 認證服務 名稱是根據相應服務的 swagger.properties 文件屬性名 swagger.title 獲取。


總結
簡單的starter代碼編寫可以減少新模塊的復雜性,只需要簡單的配置就可以使用相應的特性,減少復制代碼不必要的錯誤。
示例代碼地址:swagger-spring-boot
作者GitHub:
Purgeyao 歡迎關注
qq交流群:
812321371微信交流群:MercyYao
微信公眾號:


