在Spring Boot中使用swagger-bootstrap-ui

swagger-bootstrap-ui是基于swagger接口api實(shí)現(xiàn)的一套UI,因swagger原生ui是上下結(jié)構(gòu)的,在瀏覽接口時(shí)不是很清晰,所以,swagger-bootstrap-ui是基于左右菜單風(fēng)格的方式,適用與我們?cè)陂_(kāi)發(fā)后臺(tái)系統(tǒng)左右結(jié)構(gòu)這種風(fēng)格類似,方便與接口瀏覽

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

歡迎大家Watch,Fork,Star

界面預(yù)覽:

引入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的啟用配置文件,關(guān)鍵注解@EnableSwagger2

一下配置是支持接口分組的配置,如果沒(méi)有分組配置,只需要?jiǎng)?chuàng)建一個(gè)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("實(shí)時(shí)監(jiān)測(cè)")
                .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;
    }
}

  


?

接口訪問(wèn)

在瀏覽器輸入:http://${host}:${port}/doc.html