在Spring Boot中使用swagger-bootstrap-ui

swagger-bootstrap-ui是基于swagger接口api实现的一套UI,因swagger原生ui是上下结构的,在浏览接口时不是很清晰,所以,swagger-bootstrap-ui是基于左右菜单风格的方式,适用与我们在开发后台系统左右结构这种风格类似,方便与接口浏览

GitHub:https://github.com/xiaoymin/Swagger-Bootstrap-UI

欢迎大家Watch,Fork,Star

界面预览:

js.jpg

引入swagger

在pom.xml文件中引入swagger以及ui的jar包依赖

<dependency>
 <groupId>io.springfox</groupId>
 <artifactId>springfox-swagger2</artifactId>
 <version>2.7.0</version>
</dependency>
<!--引入ui包-->
<dependency>
 <groupId>com.github.xiaoymin</groupId>
 <artifactId>swagger-bootstrap-ui</artifactId>
 <version>1.7</version>
</dependency>

配置configuration

配置swagger的启用配置文件,关键注解@EnableSwagger2

一下配置是支持接口分组的配置,如果没有分组配置,只需要创建一个Docket即可

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
​
 @Bean
 public Docket createRestApi() {
 return new Docket(DocumentationType.SWAGGER_2)
 .apiInfo(apiInfo())
 .groupName("资源管理")
 .select()
 .apis(RequestHandlerSelectors.basePackage("com.lishiots.dc.baseinfo.ctl"))
 .paths(PathSelectors.any())
 .build();
 }
 @Bean
 public Docket createMonitorRestApi() {
 return new Docket(DocumentationType.SWAGGER_2)
 .apiInfo(apiInfo())
 .groupName("实时监测")
 .select()
 .apis(RequestHandlerSelectors.basePackage("com.lishiots.dc.monitor.ctl"))
 .paths(PathSelectors.any())
 .build();
 }
 @Bean
 public Docket createActivitiRestApi() {
 return new Docket(DocumentationType.SWAGGER_2)
 .apiInfo(apiInfo())
 .groupName("工作流引擎")
 .select()
 .apis(RequestHandlerSelectors.basePackage("com.lishiots.dc.activiti.ctl"))
 .paths(PathSelectors.any())
 .build();
 }
​
 @Bean
 public Docket createBaseRestApi() {
 return new Docket(DocumentationType.SWAGGER_2)
 .apiInfo(apiInfo())
 .groupName("kernel模块")
 .select()
 .apis(RequestHandlerSelectors.basePackage("com.lishiots.dc.kernel.ctl"))
 .paths(PathSelectors.any())
 .build();
 }
​
 @Bean
 public Docket createComplaintRestApi() {
 return new Docket(DocumentationType.SWAGGER_2)
 .apiInfo(apiInfo())
 .groupName("投诉管理")
 .select()
 .apis(RequestHandlerSelectors.basePackage("com.lishiots.dc.complaint.ctl"))
 .paths(PathSelectors.any())
 .build();
 }
​
 private ApiInfo apiInfo() {
 return new ApiInfoBuilder()
 .title("swagger RESTful APIs")
 .description("swagger RESTful APIs")
 .termsOfServiceUrl("http://www.test.com/")
 .contact("xiaoymin@foxmail.com")
 .version("1.0")
 .build();
 }
​
}

Controller层使用swagger注解

ctl代码层:

@Api(tags = "banner管理")
@RestController
@RequestMapping("/api/bannerInfo")
public class BannerCtl {
 @Autowired
 private BannerInfoService service;
​
 @PostMapping("/query")
 @ApiOperation(value = "查询banner",notes = "查询banner")
 public Pagination<BannerInfo> bannerInfoQuery(){
 Pagination<BannerInfo> pagination = service.bannerInfoQuery();
 return pagination;
 }
}

接口访问

在浏览器输入:http://${host}:${port}/doc.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 贫穷的生物,连文明都会抛弃。
    木言寺阅读 215评论 0 0
  • 一、概述 本文几乎全部参考《Android开发艺术探索》(严重抄袭~)。不同的是,对书中实例做了两方面的变更: 1...
    flycode阅读 4,485评论 1 5
  • 很久以前看见有人用打赏这个功能,我其实内心跃跃欲试,但是后来想想又放弃,没有那么多勇气,各种害怕。怕别人怎么想我,...
    妖精红袖阅读 485评论 4 1