可能你们都有用过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
微信公众号: