可能你們都有用過swagger
,能夠經過ui
頁面顯示接口信息,快速和前端進行聯調。html
如今基本都是多模塊微服務化,每一個服務都有這樣的ui頁面也是很不方便,swagger
也能夠聚合在網關頁面。前端
有開發過微服務的小夥伴應該體驗過。當微服務模塊多的狀況下,每一個模塊都須要配置這樣的一個類進行加載 swagger
。形成每一個模塊都存在大體同樣的 SwaggerConfig
,極端的狀況下,有些朋友複製其餘模塊的 SwaggerConfig
進行改造以後,發現仍然加載不出 swagger
的狀況,形成明明是複製的,爲什麼還加載不出,排查此bug極其費時間。git
在此之上,能夠構建出一個 swagger-starter
模塊,只須要引用一個 jar
,加載一些特殊的配置,就能夠快速地使用到 swagger
的部分功能了。github
ps: 實際version版本請使用最新版
最新版本: spring
點擊查看最新新版本springboot
<dependency> <groupId>com.purgeteam</groupId> <artifactId>swagger-spring-boot-starter<factId> <version>0.1.2.RELEASE</version> </dependency>
在本身項目模塊的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
作完上面步驟一個單體服務已經完成了 swagger
的配置。svg
集成到 zuul
網關上還須要配置其餘的集成配置。spring-boot
不過使用 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
微信公衆號: