SwaggerConfig.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package com.yihu.iot.config;
  2. import com.yihu.jw.rm.iot.IotRequestMapping;
  3. import io.github.swagger2markup.GroupBy;
  4. import io.github.swagger2markup.Language;
  5. import io.github.swagger2markup.Swagger2MarkupConfig;
  6. import io.github.swagger2markup.Swagger2MarkupConverter;
  7. import io.github.swagger2markup.builder.Swagger2MarkupConfigBuilder;
  8. import io.github.swagger2markup.markup.builder.MarkupLanguage;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.ComponentScan;
  11. import org.springframework.context.annotation.Configuration;
  12. import springfox.documentation.service.ApiInfo;
  13. import springfox.documentation.spi.DocumentationType;
  14. import springfox.documentation.spring.web.plugins.Docket;
  15. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  16. import java.net.URL;
  17. import java.nio.file.Path;
  18. import java.nio.file.Paths;
  19. import static com.google.common.base.Predicates.or;
  20. import static springfox.documentation.builders.PathSelectors.regex;
  21. @Configuration
  22. @EnableSwagger2
  23. @ComponentScan("com.yihu.iot.**")
  24. public class SwaggerConfig {
  25. public static final String Iot_API = "iot";
  26. @Bean
  27. public Docket iotAPI() {
  28. return new Docket(DocumentationType.SWAGGER_2)
  29. .groupName(Iot_API)
  30. .useDefaultResponseMessages(false)
  31. .forCodeGeneration(false)
  32. .pathMapping("/")
  33. .select()
  34. .paths(or(
  35. regex("/" + IotRequestMapping.api_iot_common + "/.*")
  36. ))
  37. .build()
  38. .apiInfo(iotApiInfo());
  39. }
  40. private ApiInfo iotApiInfo() {
  41. ApiInfo iotInfo = new ApiInfo("基卫2.0API",
  42. "基卫2.0API,提供医疗物联网相关服务。",
  43. "1.0",
  44. "No terms of service",
  45. "wenfujian@jkzl.com",
  46. "The Apache License, Version 2.0",
  47. "http://www.apache.org/licenses/LICENSE-2.0.html"
  48. );
  49. return iotInfo;
  50. }
  51. /**
  52. * 生成html文章专用
  53. *
  54. * @param args
  55. * @throws Exception
  56. */
  57. public static void main(String[] args) throws Exception {
  58. //String groupName="system";
  59. String groupName="iot";
  60. URL remoteSwaggerFile = new URL("http://127.0.0.1:10050//v2/api-docs?group="+groupName);
  61. Path outputFile = Paths.get("svr/svr-iot/build/"+groupName);
  62. Swagger2MarkupConfig config = new Swagger2MarkupConfigBuilder()
  63. .withMarkupLanguage(MarkupLanguage.ASCIIDOC)
  64. .withOutputLanguage(Language.ZH)
  65. .withPathsGroupedBy(GroupBy.TAGS)
  66. .withGeneratedExamples()
  67. .withoutInlineSchema()
  68. .withBasePathPrefix()
  69. .build();
  70. Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(remoteSwaggerFile)
  71. .withConfig(config)
  72. .build();
  73. converter.toFile(outputFile);
  74. }
  75. }