knife4j(swagger界面配置)
1、config类:
@Configuration
@EnableKnife4j
@ConditionalOnProperty(prefix = "knife4j",name = "enable",havingValue = "true")
public class SwaggerConfig {
private RequestParameterBuilder RequestParameterBuilder;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("web.controller"))
.paths(PathSelectors.any())
.build()
.securityContexts(securityContext())
.securitySchemes(securitySchemes());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("框架title")
.contact(new Contact("***", "", ""))
.version("1.0")
.description("API 描述")
.build();
}
private List<SecurityScheme> securitySchemes() {
List<SecurityScheme> list = new ArrayList();
list.add(new ApiKey("token", "token", "header"));
return list;
}
private List<SecurityContext> securityContext() {
List<SecurityContext> list = new ArrayList();
SecurityContext securityContext = SecurityContext.builder()
.securityReferences(securityReferences())
.forPaths(PathSelectors.regex("/.*"))
.build();
list.add(securityContext);
return list;
}
List<SecurityReference> securityReferences() {
AuthorizationScope[] authorizationScopes = new AuthorizationScope[]{new AuthorizationScope("global", "全局token")};
List<SecurityReference> securityReferences = new ArrayList<>();
securityReferences.add(new SecurityReference("token", authorizationScopes));
return securityReferences;
}
}
2、application.yml
knife4j:
enable: true
basic:
enable: true
username: admin
password: 123456