SpringBoot-Swagger整合zuul智能列表


SpringBoot-Swagger整合zuul智能列表

簡介

可能大家都有用過swagger,可以通過ui頁面顯示接口信息,快速和前端進行聯調。

現在基本都是多模塊微服務化,每個服務都有這樣的ui頁面也是很不方便,swagger 也可以聚合在網關頁面。

有開發過微服務的小伙伴應該體驗過。當微服務模塊多的情況下,每個模塊都需要配置這樣的一個類進行加載 swagger 。造成每個模塊都存在大致一樣的 SwaggerConfig ,極端的情況下,有些朋友復制其他模塊的 SwaggerConfig 進行改造之后,發現仍然加載不出 swagger 的情況,造成明明是復制的,為何還加載不出,排查此bug極其費時間。

在此之上,可以構建出一個 swagger-starter 模塊,只需要引用一個 jar ,加載一些特殊的配置,就可以快速地使用到 swagger 的部分功能了。

功能使用

添加依賴

ps: 實際version版本請使用最新版
最新版本: Maven Central

點擊查看最新新版本

<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是否正常。

image.png

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是否正常。

image.png

狀態支持

Select a spec 選擇框里可以選擇網關下的微服務列表進行聚合展示。

這里也支持了服務狀態顯示。

health > "用戶服務"(user)
health > "認證服務"(auth)
sick > front-demo(已下線)
sick > giant-demo(已下線)

這里的 用戶服務 認證服務 名稱是根據相應服務的 swagger.properties 文件屬性名 swagger.title 獲取。

image.png

image.png

總結

簡單的starter代碼編寫可以減少新模塊的復雜性,只需要簡單的配置就可以使用相應的特性,減少復制代碼不必要的錯誤。

示例代碼地址:swagger-spring-boot

作者GitHub:
Purgeyao 歡迎關注

qq交流群: 812321371 微信交流群: MercyYao

微信公眾號:

微信公眾號二維碼


免責聲明!

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



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