Swagger2Config.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.honter.config;
  2. import com.google.common.base.Predicates;
  3. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import springfox.documentation.builders.ApiInfoBuilder;
  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.Contact;
  13. import springfox.documentation.service.Parameter;
  14. import springfox.documentation.spi.DocumentationType;
  15. import springfox.documentation.spring.web.plugins.Docket;
  16. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. /**
  20. * @Author: hongtao li
  21. * @email: yong.wang@alldobetter.com,nothingnull@foxmail.com
  22. * @since: 2018/2/12 14:34.
  23. */
  24. @Configuration
  25. public class Swagger2Config {
  26. @Bean
  27. public Docket api() {
  28. //可以添加多个header或参数
  29. ParameterBuilder aParameterBuilder = new ParameterBuilder();
  30. aParameterBuilder
  31. .parameterType("header") //参数类型支持header, cookie, body, query etc
  32. .name("Authorization") //参数名
  33. .defaultValue("Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJkYXRlXCI6MTU1MzI0NDAxOTcwOCxcInVzZXJuYW1lXCI6XCIxMjExMVwifSIsImV4cCI6OTAwMDAwMTU1MzI0NDAxOSwiaWF0IjoxNTUzMjQ0MDE5fQ.iiO_WT2uPXrNpzNIPjYhjbYfFLrswah7VrVaXLJLAXJHe451FdB00J1u7ElucAgyC3g_VnkAwz_w8oNBXfgFmQ") //默认值
  34. .description("header中测试token字段")
  35. .modelRef(new ModelRef("string"))//指定参数值的类型
  36. .required(false).build(); //非必需,这里是全局配置,然而在登陆的时候是不用验证的
  37. List<Parameter> aParameters = new ArrayList<>();
  38. aParameters.add(aParameterBuilder.build());
  39. return new Docket(DocumentationType.SWAGGER_2)
  40. .apiInfo(apiInfo())
  41. .pathMapping("/")
  42. .select() // 选择那些路径和api会生成document
  43. .apis(RequestHandlerSelectors.any())// 对所有api进行监控
  44. //不显示错误的接口地址
  45. .paths(Predicates.not(PathSelectors.regex("/error.*")))//错误路径不监控
  46. .paths(PathSelectors.regex("/.*"))// 对根下所有路径进行监控
  47. .build().globalOperationParameters(aParameters);
  48. }
  49. private ApiInfo apiInfo() {
  50. return new ApiInfoBuilder().title("这是我的接口文档")
  51. .version("v1.0")
  52. .build();
  53. }
  54. }