SpringBoot整合SwaggerUI
SwaggerUI提供了一个可视化的UI页面展示描述文件,可以在该页面中对相关接口进行查阅和做一些简单的接口请求。即拥有在线接口文档功能和在线接口测试功能。
1.整合Swagger所需要的依赖(前两个依赖是原有的Swagger依赖,后一个为github上提供的一个美化后的UI界面所需要的依赖)
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
2.整合Swagger需要在SpringBoot中注入的Bean
@Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.XXXX")) .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("XXXXX系统-API文档") .description("API文档-对API进行描述") .version("1.0.0") //.termsOfServiceUrl("http://xxx.xxx.com") .license("All rights belongs to XXXXX") //.licenseUrl("http://xxx.xxx.com") .build(); } }
3.整合Swagger需要添加的Mapping映射
@Configuration public class SwaggerMappingConfig extends WebMvcConfigurationSupport { @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/*").addResourceLocations("/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); super.addResourceHandlers(registry); } }
4.通过以上3步即整合成功,访问路径:http://localhost:8080/{serverContext}/doc.html。其中{serverContext}为服务的上下文路径,如果没有则去掉。
探索不以困难而止,学习不以艰苦而终