package com.example.springboot.config;
|
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import springfox.documentation.builders.ApiInfoBuilder;
|
import springfox.documentation.builders.PathSelectors;
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
import springfox.documentation.service.ApiInfo;
|
import springfox.documentation.service.Contact;
|
import springfox.documentation.spi.DocumentationType;
|
import springfox.documentation.spring.web.plugins.Docket;
|
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
|
/**
|
* swagger配置
|
* 项目运行后访问:http://localhost:port/swagger-ui.html
|
*/
|
@Configuration
|
@EnableSwagger2
|
public class SwaggerConfig {
|
// 配置swagger2核心配置 docket
|
@Bean
|
public Docket createRestApi() {
|
return new Docket(DocumentationType.SWAGGER_2) // 指定api类型为swagger2
|
.groupName("authority") // 分组
|
.apiInfo(apiInfo()) // 用于定义api文档汇总信息
|
.select() // 通过.select()方法,去配置扫描接口。RequestHandlerSelectors配置如何扫描接口
|
/*
|
// RequestHandlerSelectors配置方法
|
any() // 扫描所有,项目中的所有接口都会被扫描到
|
none() // 不扫描接口
|
// 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求
|
withMethodAnnotation( final Class<? extends Annotation> annotation)
|
// 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口
|
withClassAnnotation( final Class<? extends Annotation> annotation)
|
basePackage( final String basePackage) // 根据包路径扫描接口
|
*/
|
.apis(RequestHandlerSelectors.basePackage("com.canadames")) // 指定扫描包
|
/*
|
// 配置如何通过path过滤,即这里只扫描请求以/开头的接口
|
any() // 任何请求都扫描
|
none() // 任何请求都不扫描
|
regex(final String pathRegex) // 通过正则表达式控制
|
ant(final String antPattern) // 通过ant()控制
|
*/
|
.paths(PathSelectors.any()) // 所有controller
|
.build();
|
}
|
|
//构建 api文档的详细信息函数,注意这里的注解引用的是哪个
|
private ApiInfo apiInfo() {
|
return new ApiInfoBuilder()
|
.title("权限管理系统 API") // 文档页标题
|
.contact(new Contact("canadames", "https://jonssonyan.com", "yz808@outlook.com")) // 联系人信息
|
.version("1.0") // 文档版本号
|
.description("API 描述") // 描述
|
.build();
|
}
|
}
|