SpringBoot-Swagger整合zuul智能列表

SpringBoot-Swagger整合zuul智能列表

简介

可能你们都有用过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>

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

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

微信公众号:

微信公众号二维码

相关文章
相关标签/搜索