Swagger3Config.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.genersoft.iot.vmp.conf;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import springfox.documentation.builders.ApiInfoBuilder;
  6. import springfox.documentation.builders.PathSelectors;
  7. import springfox.documentation.builders.RequestHandlerSelectors;
  8. import springfox.documentation.service.ApiInfo;
  9. import springfox.documentation.service.Contact;
  10. import springfox.documentation.spi.DocumentationType;
  11. import springfox.documentation.spring.web.plugins.Docket;
  12. @Configuration
  13. public class Swagger3Config {
  14. @Value("${swagger-ui.enabled: true}")
  15. private boolean enable;
  16. @Bean
  17. public Docket createRestApi() {
  18. return new Docket(DocumentationType.OAS_30)
  19. .apiInfo(apiInfo())
  20. .groupName("1. 全部")
  21. .select()
  22. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager"))
  23. .paths(PathSelectors.any())
  24. .build()
  25. .pathMapping("/")
  26. .enable(enable);
  27. }
  28. @Bean
  29. public Docket createRestGBApi() {
  30. return new Docket(DocumentationType.OAS_30)
  31. .apiInfo(apiInfo())
  32. .groupName("2. 国标28181")
  33. .select()
  34. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.gb28181"))
  35. .paths(PathSelectors.any())
  36. .build()
  37. .pathMapping("/")
  38. .enable(enable);
  39. }
  40. @Bean
  41. public Docket createRestONVIFApi() {
  42. return new Docket(DocumentationType.OAS_30)
  43. .apiInfo(apiInfo())
  44. .groupName("3. ONVIF")
  45. .select()
  46. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.onvif"))
  47. .paths(PathSelectors.any())
  48. .build()
  49. .pathMapping("/")
  50. .enable(enable);
  51. }
  52. @Bean
  53. public Docket createRestStreamProxyApi() {
  54. return new Docket(DocumentationType.OAS_30)
  55. .apiInfo(apiInfo())
  56. .groupName("4. 拉流转发")
  57. .select()
  58. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.streamProxy"))
  59. .paths(PathSelectors.any())
  60. .build()
  61. .pathMapping("/")
  62. .enable(enable);
  63. }
  64. @Bean
  65. public Docket createRestStreamPushApi() {
  66. return new Docket(DocumentationType.OAS_30)
  67. .apiInfo(apiInfo())
  68. .groupName("5. 推流管理")
  69. .select()
  70. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.streamPush"))
  71. .paths(PathSelectors.any())
  72. .build()
  73. .pathMapping("/")
  74. .enable(enable);
  75. }
  76. @Bean
  77. public Docket createServerApi() {
  78. return new Docket(DocumentationType.OAS_30)
  79. .apiInfo(apiInfo())
  80. .groupName("6. 服务管理")
  81. .select()
  82. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.server"))
  83. .paths(PathSelectors.any())
  84. .build()
  85. .pathMapping("/")
  86. .enable(enable);
  87. }
  88. @Bean
  89. public Docket createUserApi() {
  90. return new Docket(DocumentationType.OAS_30)
  91. .apiInfo(apiInfo())
  92. .groupName("7. 用户管理")
  93. .select()
  94. .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.user"))
  95. .paths(PathSelectors.any())
  96. .build()
  97. .pathMapping("/")
  98. .enable(enable);
  99. }
  100. private ApiInfo apiInfo() {
  101. return new ApiInfoBuilder()
  102. .title("WVP-PRO 接口文档")
  103. .description("更多请咨询服务开发者(https://github.com/648540858/wvp-GB28181-pro)。")
  104. .contact(new Contact("648540858", "648540858", "648540858@qq.com"))
  105. .version("2.0")
  106. .build();
  107. }
  108. }