package com.qmth.distributed.print.config; import com.google.common.base.Predicates; import com.qmth.teachcloud.common.contant.SystemConstant; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; import java.util.List; /** * @Description: swagger配置类 * @Param: * @return: * @Author: wangliang * @Date: 2019/9/21 */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { // ParameterBuilder tokenPar = new ParameterBuilder(); // ParameterBuilder tokenPar1 = new ParameterBuilder(); // ParameterBuilder tokenPar2 = new ParameterBuilder(); // ParameterBuilder tokenPar3 = new ParameterBuilder(); // ParameterBuilder tokenPar4 = new ParameterBuilder(); // ParameterBuilder tokenPar5 = new ParameterBuilder(); List pars = new ArrayList<>(); // tokenPar.name(SystemConstant.HEADER_PLATFORM).description("平台").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); // tokenPar1.name(SystemConstant.HEADER_DEVICE_ID).description("设备id").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); // tokenPar2.name(SystemConstant.HEADER_AUTHORIZATION).description("鉴权token").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); // tokenPar3.name(SystemConstant.HEADER_TIME).description("时间戳").modelRef(new ModelRef("long")).parameterType("header").required(false).build(); // tokenPar4.name(SystemConstant.MD5.toLowerCase()).description("md5").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); // tokenPar5.name(SystemConstant.SCHOOL_ID).description("学校id").modelRef(new ModelRef("long")).parameterType("header").required(false).build(); // pars.add(tokenPar.build()); // pars.add(tokenPar1.build()); // pars.add(tokenPar2.build()); // pars.add(tokenPar3.build()); // pars.add(tokenPar4.build()); // pars.add(tokenPar5.build()); return new Docket(DocumentationType.SWAGGER_2) .groupName("distributed-print") .select() .apis(RequestHandlerSelectors.basePackage("com.qmth.distributed.print")) // .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()) // 不显示错误的接口地址 .paths(Predicates.not(PathSelectors.regex("/error.*")))// 错误路径不监控 .build() .globalOperationParameters(pars) .apiInfo(apiInfo()); } private ApiInfo apiInfo() { ApiInfo apiInfo = new ApiInfo( "分布式印刷平台 - api", "Some custom description of API.", "API TOS", "Terms of service", "myeaddress@company.com", "License of API", "API license URL"); return apiInfo; } }