SwaggerConfig.java 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.qmth.distributed.print.config;
  2. import com.google.common.base.Predicates;
  3. import com.qmth.teachcloud.common.contant.SystemConstant;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import springfox.documentation.builders.ParameterBuilder;
  7. import springfox.documentation.builders.PathSelectors;
  8. import springfox.documentation.builders.RequestHandlerSelectors;
  9. import springfox.documentation.schema.ModelRef;
  10. import springfox.documentation.service.ApiInfo;
  11. import springfox.documentation.service.Parameter;
  12. import springfox.documentation.spi.DocumentationType;
  13. import springfox.documentation.spring.web.plugins.Docket;
  14. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. /**
  18. * @Description: swagger配置类
  19. * @Param:
  20. * @return:
  21. * @Author: wangliang
  22. * @Date: 2019/9/21
  23. */
  24. @Configuration
  25. @EnableSwagger2
  26. public class SwaggerConfig {
  27. @Bean
  28. public Docket createRestApi() {
  29. // ParameterBuilder tokenPar = new ParameterBuilder();
  30. // ParameterBuilder tokenPar1 = new ParameterBuilder();
  31. // ParameterBuilder tokenPar2 = new ParameterBuilder();
  32. // ParameterBuilder tokenPar3 = new ParameterBuilder();
  33. // ParameterBuilder tokenPar4 = new ParameterBuilder();
  34. // ParameterBuilder tokenPar5 = new ParameterBuilder();
  35. List<Parameter> pars = new ArrayList<>();
  36. // tokenPar.name(SystemConstant.HEADER_PLATFORM).description("平台").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  37. // tokenPar1.name(SystemConstant.HEADER_DEVICE_ID).description("设备id").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  38. // tokenPar2.name(SystemConstant.HEADER_AUTHORIZATION).description("鉴权token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  39. // tokenPar3.name(SystemConstant.HEADER_TIME).description("时间戳").modelRef(new ModelRef("long")).parameterType("header").required(false).build();
  40. // tokenPar4.name(SystemConstant.MD5.toLowerCase()).description("md5").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  41. // tokenPar5.name(SystemConstant.SCHOOL_ID).description("学校id").modelRef(new ModelRef("long")).parameterType("header").required(false).build();
  42. // pars.add(tokenPar.build());
  43. // pars.add(tokenPar1.build());
  44. // pars.add(tokenPar2.build());
  45. // pars.add(tokenPar3.build());
  46. // pars.add(tokenPar4.build());
  47. // pars.add(tokenPar5.build());
  48. return new Docket(DocumentationType.SWAGGER_2)
  49. .groupName("distributed-print")
  50. .select()
  51. .apis(RequestHandlerSelectors.basePackage("com.qmth.distributed.print"))
  52. // .apis(RequestHandlerSelectors.any())
  53. .paths(PathSelectors.any())
  54. // 不显示错误的接口地址
  55. .paths(Predicates.not(PathSelectors.regex("/error.*")))// 错误路径不监控
  56. .build()
  57. .globalOperationParameters(pars)
  58. .apiInfo(apiInfo());
  59. }
  60. private ApiInfo apiInfo() {
  61. ApiInfo apiInfo = new ApiInfo(
  62. "分布式印刷平台 - api",
  63. "Some custom description of API.",
  64. "API TOS",
  65. "Terms of service",
  66. "myeaddress@company.com",
  67. "License of API",
  68. "API license URL");
  69. return apiInfo;
  70. }
  71. }