SpringBoot-Swagger整合zuul智能列表

SpringBoot-Swagger整合zuul智能列表

簡介

可能你們都有用過swagger,能夠經過ui頁面顯示接口信息,快速和前端進行聯調。html

如今基本都是多模塊微服務化,每一個服務都有這樣的ui頁面也是很不方便,swagger 也能夠聚合在網關頁面。前端

有開發過微服務的小夥伴應該體驗過。當微服務模塊多的狀況下,每一個模塊都須要配置這樣的一個類進行加載 swagger 。形成每一個模塊都存在大體同樣的 SwaggerConfig ,極端的狀況下,有些朋友複製其餘模塊的 SwaggerConfig 進行改造以後,發現仍然加載不出 swagger 的狀況,形成明明是複製的,爲什麼還加載不出,排查此bug極其費時間。git

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

功能使用

添加依賴

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

點擊查看最新新版本segmentfault

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

image.png

Zuul網關集成

作完上面步驟一個單體服務已經完成了 swagger 的配置。spring-boot

集成到 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

微信公衆號:

微信公衆號二維碼

相關文章
相關標籤/搜索