SwaggerConfig.java 3.0 KB

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