导入依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<!--在引用时请在maven中央仓库搜索最新版本号-->
<version>2.0.2</version>
</dependency>
添加配置类
@Configuration
@EnableSwagger2
@PropertySource("classpath:resource.properties")
public class SwaggerConfig {
/** 是否开启swagger 开启为 ture*/
@Value("${swagger.enabled}")
private boolean enabled;
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2)
.enable(enabled)
.apiInfo(apiInfo())
.globalOperationParameters(setHeaderToken())
.select()
//为当前包下controller生成API文档
.apis(RequestHandlerSelectors.basePackage("com.xxx.xxx.xxx.controller"))
//为有@Api注解的Controller生成API文档
// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
//为有@ApiOperation注解的方法生成API文档
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("项目标题")
.description("项目描述")
.termsOfServiceUrl("一个连接地址")
.contact(new Contact("开发人/公司", "一个连接地址", "邮箱"))
.version("1.0")
.build();
}
/*
默认调用所有接口都添加一个头部参数
*/
private List<Parameter> setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name("Token").description("token(后台管理用,app端不需要)").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return pars;
}
}