/src/main/java/com/eastrobot/doc/config/Swagger2.java

https://github.com/ekoz/kbase-doc · Java · 73 lines · 54 code · 11 blank · 8 comment · 0 complexity · fb304e08f5d2902d94bab5d4c1bdc375 MD5 · raw file

  1. /*
  2. * Power by www.xiaoi.com
  3. */
  4. package com.eastrobot.doc.config;
  5. import org.springframework.context.annotation.Bean;
  6. import org.springframework.context.annotation.Configuration;
  7. import springfox.documentation.builders.ApiInfoBuilder;
  8. import springfox.documentation.builders.PathSelectors;
  9. import springfox.documentation.builders.RequestHandlerSelectors;
  10. import springfox.documentation.service.*;
  11. import springfox.documentation.spi.DocumentationType;
  12. import springfox.documentation.spi.service.contexts.SecurityContext;
  13. import springfox.documentation.spring.web.plugins.Docket;
  14. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  15. import java.util.List;
  16. import static com.google.common.collect.Lists.newArrayList;
  17. /**
  18. * @author <a href="mailto:eko.z@outlook.com">eko.zhan</a>
  19. * @date 2017年12月2日 上午11:39:23
  20. * @version 1.0
  21. */
  22. @Configuration
  23. @EnableSwagger2
  24. public class Swagger2 {
  25. @Bean
  26. public Docket createRestApi() {
  27. return new Docket(DocumentationType.SWAGGER_2)
  28. .apiInfo(apiInfo())
  29. .securitySchemes(securitySchemes())
  30. .securityContexts(securityContexts())
  31. .select()
  32. .apis(RequestHandlerSelectors.basePackage("com.eastrobot.doc.web"))
  33. .paths(PathSelectors.any())
  34. .build();
  35. }
  36. private List<SecurityScheme> securitySchemes() {
  37. return newArrayList(new ApiKey(SystemConstants.API_KEY, SystemConstants.API_TOKEN, SystemConstants.API_PASSAS));
  38. }
  39. private List<SecurityContext> securityContexts() {
  40. return newArrayList(
  41. SecurityContext.builder()
  42. .securityReferences(defaultAuth())
  43. .forPaths(PathSelectors.any())
  44. .build()
  45. );
  46. }
  47. private List<SecurityReference> defaultAuth() {
  48. AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
  49. AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
  50. authorizationScopes[0] = authorizationScope;
  51. return newArrayList(new SecurityReference(SystemConstants.API_KEY, authorizationScopes));
  52. }
  53. private ApiInfo apiInfo() {
  54. return new ApiInfoBuilder()
  55. .title("Spring Boot 中使用 Swagger2 构建 RESTful APIs ")
  56. .description("")
  57. .termsOfServiceUrl("http://ekozhan.com/kbase-doc/")
  58. .contact(new Contact("ekozhan", "http://ekozhan.com/", "eko.z@outlook.com"))
  59. .version("1.0")
  60. .build();
  61. }
  62. }