| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- //package com.malk.config.swagger3;
- //
- //import io.swagger.annotations.ApiOperation;
- //import io.swagger.models.auth.In;
- //import org.apache.commons.lang3.reflect.FieldUtils;
- //import org.springframework.boot.SpringBootVersion;
- //import org.springframework.context.annotation.Bean;
- //import org.springframework.context.annotation.Configuration;
- //import org.springframework.context.annotation.Profile;
- //import org.springframework.util.ReflectionUtils;
- //import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
- //import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- //import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
- //import springfox.documentation.RequestHandler;
- //import springfox.documentation.builders.ApiInfoBuilder;
- //import springfox.documentation.builders.PathSelectors;
- //import springfox.documentation.builders.RequestHandlerSelectors;
- //import springfox.documentation.oas.annotations.EnableOpenApi;
- //import springfox.documentation.service.*;
- //import springfox.documentation.spi.DocumentationType;
- //import springfox.documentation.spi.service.contexts.SecurityContext;
- //import springfox.documentation.spring.web.plugins.Docket;
- //
- //import java.lang.reflect.Field;
- //import java.util.*;
- //import java.util.function.Predicate;
- //
- ///**
- // * swagger3 加载 UI, 添加全局 path
- // * -
- // * 路径: http://localhost:9001/dev/swagger-ui/index.html#/
- // */
- //@Profile({"dev", "local"})
- //@Configuration
- //@EnableOpenApi
- //public class SwaggerConfiguration implements WebMvcConfigurer {
- //
- // private final SwaggerProperties swaggerProperties;
- //
- // public SwaggerConfiguration(SwaggerProperties swaggerProperties) {
- // this.swaggerProperties = swaggerProperties;
- // }
- //
- // /// api bean ///
- // private Docket _restApi(Predicate<RequestHandler> apis, Predicate<String> paths) {
- // return new Docket(DocumentationType.OAS_30)
- // .enable(swaggerProperties.getEnable()) // 定义是否开启swagger,false为关闭,可以通过变量控制
- // .apiInfo(apiInfo()) // 将api的元信息设置为包含在json ResourceListing响应中。
- // .host(swaggerProperties.getTryHost()) // 接口调试地址
- // .select() // 选择哪些接口作为swagger的doc发布
- // .apis(apis)
- // .paths(PathSelectors.regex("(?!/ApiError.*).*"))
- // .paths(paths)
- // .build()
- // .protocols(newHashSet("https", "http")) // 支持的通讯协议集合
- // .securitySchemes(securitySchemes()) // 授权信息设置,必要的header token等认证信息
- // .securityContexts(securityContexts()); // 授权信息全局应用
- // }
- //
- // /**
- // * 文档说明
- // */
- // @Bean
- // public Docket createRestApi() {
- // return _restApi(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class), PathSelectors.any())
- // .groupName("api");
- // }
- //
- // /**
- // * 加载全部
- // */
- // @Bean
- // public Docket createRestDev() {
- // return _restApi(RequestHandlerSelectors.basePackage("com.malk"), PathSelectors.any())
- // .groupName("dev");
- // }
- //
- // /**
- // * API 页面头部信息
- // */
- // private ApiInfo apiInfo() {
- // return new ApiInfoBuilder()
- // .title(swaggerProperties.getApplicationName() + " Api Doc")
- // .description(swaggerProperties.getApplicationDescription())
- // .contact(new Contact("malk", "https://mc.100ali.com/", "pruple_boy@163.com"))
- // .version("Application Version: " + swaggerProperties.getApplicationVersion() + ", Spring Boot Version: " + SpringBootVersion.getVersion())
- // .build();
- // }
- //
- // /**
- // * 设置授权信息
- // */
- // private List<SecurityScheme> securitySchemes() {
- // ApiKey apiKey = new ApiKey("BASE_TOKEN", "token", In.HEADER.toValue());
- // return Collections.singletonList(apiKey);
- // }
- //
- // /**
- // * 授权信息全局应用
- // */
- // private List<SecurityContext> securityContexts() {
- // return Collections.singletonList(
- // SecurityContext.builder()
- // .securityReferences(Collections.singletonList(new SecurityReference("BASE_TOKEN", new AuthorizationScope[]{new AuthorizationScope("global", "")})))
- // .build()
- // );
- // }
- //
- // @SafeVarargs
- // private final <T> Set<T> newHashSet(T... ts) {
- // if (ts.length > 0) {
- // return new LinkedHashSet<>(Arrays.asList(ts));
- // }
- // return null;
- // }
- //
- // /**
- // * 通用拦截器排除swagger设置,所有拦截器都会自动加swagger相关的资源排除信息
- // */
- // @SuppressWarnings("unchecked")
- // @Override
- // public void addInterceptors(InterceptorRegistry registry) {
- // try {
- // Field registrationsField = FieldUtils.getField(InterceptorRegistry.class, "registrations", true);
- // List<InterceptorRegistration> registrations = (List<InterceptorRegistration>) ReflectionUtils.getField(registrationsField, registry);
- // if (registrations != null) {
- // for (InterceptorRegistration interceptorRegistration : registrations) {
- // interceptorRegistration
- // .excludePathPatterns("/swagger**/**")
- // .excludePathPatterns("/webjars/**")
- // .excludePathPatterns("/v3/**")
- // .excludePathPatterns("/doc.html");
- // }
- // }
- // } catch (Exception e) {
- // e.printStackTrace();
- // }
- // }
- //}
|