SwaggerConfig.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.yihu.jw.config;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.ComponentScan;
  4. import org.springframework.context.annotation.Configuration;
  5. import springfox.documentation.builders.ParameterBuilder;
  6. import springfox.documentation.builders.PathSelectors;
  7. import springfox.documentation.builders.RequestHandlerSelectors;
  8. import springfox.documentation.schema.ModelRef;
  9. import springfox.documentation.service.ApiInfo;
  10. import springfox.documentation.service.Parameter;
  11. import springfox.documentation.spi.DocumentationType;
  12. import springfox.documentation.spring.web.plugins.Docket;
  13. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  14. import java.util.ArrayList;
  15. import java.util.List;
  16. @Configuration
  17. @EnableSwagger2
  18. @ComponentScan("com.yihu.jw.controller.**")
  19. public class SwaggerConfig {
  20. public static final String base_API = "base";
  21. public static final String wlyy_API = "wlyy";
  22. public static final String login_API = "login";
  23. public static final String iot_API = "iot";
  24. final String userAgentJson = "{\"id\":int,\"uid\":string,\"openid\":string,\"token\":string,\"lastUid\":string,\"platform\":int}";
  25. @Bean
  26. public Docket baseAPI() {
  27. List<Parameter> pars = addToken();
  28. return new Docket(DocumentationType.SWAGGER_2)
  29. .groupName(base_API)
  30. .useDefaultResponseMessages(false)
  31. .apiInfo(baseApiInfo())
  32. .select()
  33. .apis(RequestHandlerSelectors.basePackage("com.yihu.jw.controller.base"))
  34. .paths(PathSelectors.any())
  35. .build().globalOperationParameters(pars);
  36. }
  37. private ApiInfo baseApiInfo() {
  38. ApiInfo apiInfo = new ApiInfo("基卫2.0API",
  39. "基卫2.0API,提供基础卫生相关服务。",
  40. "1.0",
  41. "No terms of service",
  42. "wenfujian@jkzl.com",
  43. "The Apache License, Version 2.0",
  44. "http://www.apache.org/licenses/LICENSE-2.0.html"
  45. );
  46. return apiInfo;
  47. }
  48. private List<Parameter> addToken() {
  49. ParameterBuilder tokenPar = new ParameterBuilder();
  50. ParameterBuilder userAgentPar = new ParameterBuilder();
  51. List<Parameter> pars = new ArrayList<Parameter>();
  52. userAgentPar.name("Authorization").description("\"Authorization\":\"bearer 5fe6b2c3-f69c-4ddc-a36a-367cdf9479a3\"").modelRef(new ModelRef("string")).parameterType("header").required(false).defaultValue("").build();
  53. tokenPar.name("accesstoken").description("accesstoken").modelRef(new ModelRef("string")).parameterType("header").required(false).defaultValue("").build();
  54. pars.add(tokenPar.build());
  55. pars.add(userAgentPar.build());
  56. return pars;
  57. }
  58. @Bean
  59. public Docket wlyyAPI() {
  60. List<Parameter> pars = addToken();
  61. return new Docket(DocumentationType.SWAGGER_2)
  62. .groupName(wlyy_API)
  63. .useDefaultResponseMessages(false)
  64. .apiInfo(wlyyApiInfo())
  65. .select()
  66. .apis(RequestHandlerSelectors.basePackage("com.yihu.jw.controller.wlyy"))
  67. .paths(PathSelectors.any())
  68. .build().globalOperationParameters(pars);
  69. }
  70. private ApiInfo wlyyApiInfo() {
  71. ApiInfo apiInfo = new ApiInfo("基卫2.0API",
  72. "基卫2.0API,提供基础卫生相关服务。",
  73. "1.0",
  74. "No terms of service",
  75. "wenfujian@jkzl.com",
  76. "The Apache License, Version 2.0",
  77. "http://www.apache.org/licenses/LICENSE-2.0.html"
  78. );
  79. return apiInfo;
  80. }
  81. @Bean
  82. public Docket loginAPI() {
  83. List<Parameter> pars = addToken();
  84. return new Docket(DocumentationType.SWAGGER_2)
  85. .groupName(login_API)
  86. .useDefaultResponseMessages(false)
  87. .apiInfo(loginApiInfo())
  88. .select()
  89. .apis(RequestHandlerSelectors.basePackage("com.yihu.jw.controller.login"))
  90. .paths(PathSelectors.any())
  91. .build().globalOperationParameters(pars);
  92. }
  93. private ApiInfo loginApiInfo() {
  94. ApiInfo apiInfo = new ApiInfo("基卫2.0API",
  95. "基卫2.0API,提供基础卫生相关服务。",
  96. "1.0",
  97. "No terms of service",
  98. "wenfujian@jkzl.com",
  99. "The Apache License, Version 2.0",
  100. "http://www.apache.org/licenses/LICENSE-2.0.html"
  101. );
  102. return apiInfo;
  103. }
  104. @Bean
  105. public Docket iotAPI() {
  106. List<Parameter> pars = addToken();
  107. return new Docket(DocumentationType.SWAGGER_2)
  108. .groupName(iot_API)
  109. .useDefaultResponseMessages(false)
  110. .apiInfo(iotApiInfo())
  111. .select()
  112. .apis(RequestHandlerSelectors.basePackage("com.yihu.jw.controller.iot"))
  113. .paths(PathSelectors.any())
  114. .build().globalOperationParameters(pars);
  115. }
  116. private ApiInfo iotApiInfo() {
  117. ApiInfo apiInfo = new ApiInfo("基卫2.0API",
  118. "基卫2.0API,提供物联网相关服务。",
  119. "1.0",
  120. "No terms of service",
  121. "wenfujian@jkzl.com",
  122. "The Apache License, Version 2.0",
  123. "http://www.apache.org/licenses/LICENSE-2.0.html"
  124. );
  125. return apiInfo;
  126. }
  127. }