SpringDocConfig.java 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.genersoft.iot.vmp.conf;
  2. import com.genersoft.iot.vmp.conf.security.JwtUtils;
  3. import io.swagger.v3.oas.models.Components;
  4. import io.swagger.v3.oas.models.OpenAPI;
  5. import io.swagger.v3.oas.models.info.Contact;
  6. import io.swagger.v3.oas.models.info.Info;
  7. import io.swagger.v3.oas.models.info.License;
  8. import io.swagger.v3.oas.models.security.SecurityScheme;
  9. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  10. import org.springframework.core.annotation.Order;
  11. import org.springdoc.core.GroupedOpenApi;
  12. import org.springframework.beans.factory.annotation.Value;
  13. import org.springframework.context.annotation.Bean;
  14. import org.springframework.context.annotation.Configuration;
  15. /**
  16. * @author lin
  17. */
  18. @Configuration
  19. @Order(1)
  20. @ConditionalOnProperty(value = "user-settings.doc-enable", havingValue = "true", matchIfMissing = true)
  21. public class SpringDocConfig {
  22. @Value("${doc.enabled: true}")
  23. private boolean enable;
  24. @Bean
  25. public OpenAPI springShopOpenApi() {
  26. Contact contact = new Contact();
  27. contact.setName("pan");
  28. contact.setEmail("648540858@qq.com");
  29. return new OpenAPI()
  30. .components(new Components()
  31. .addSecuritySchemes(JwtUtils.HEADER, new SecurityScheme()
  32. .type(SecurityScheme.Type.HTTP)
  33. .bearerFormat("JWT")))
  34. .info(new Info().title("WVP-PRO 接口文档")
  35. .contact(contact)
  36. .description("开箱即用的28181协议视频平台")
  37. .version("v3.1.0")
  38. .license(new License().name("Apache 2.0").url("http://springdoc.org")));
  39. }
  40. /**
  41. * 添加分组
  42. * @return
  43. */
  44. @Bean
  45. public GroupedOpenApi publicApi() {
  46. return GroupedOpenApi.builder()
  47. .group("1. 全部")
  48. .packagesToScan("com.genersoft.iot.vmp.vmanager")
  49. .build();
  50. }
  51. @Bean
  52. public GroupedOpenApi publicApi2() {
  53. return GroupedOpenApi.builder()
  54. .group("2. 国标28181")
  55. .packagesToScan("com.genersoft.iot.vmp.vmanager.gb28181")
  56. .build();
  57. }
  58. @Bean
  59. public GroupedOpenApi publicApi3() {
  60. return GroupedOpenApi.builder()
  61. .group("3. 拉流转发")
  62. .packagesToScan("com.genersoft.iot.vmp.vmanager.streamProxy")
  63. .build();
  64. }
  65. @Bean
  66. public GroupedOpenApi publicApi4() {
  67. return GroupedOpenApi.builder()
  68. .group("4. 推流管理")
  69. .packagesToScan("com.genersoft.iot.vmp.vmanager.streamPush")
  70. .build();
  71. }
  72. @Bean
  73. public GroupedOpenApi publicApi5() {
  74. return GroupedOpenApi.builder()
  75. .group("4. 服务管理")
  76. .packagesToScan("com.genersoft.iot.vmp.vmanager.server")
  77. .build();
  78. }
  79. @Bean
  80. public GroupedOpenApi publicApi6() {
  81. return GroupedOpenApi.builder()
  82. .group("5. 用户管理")
  83. .packagesToScan("com.genersoft.iot.vmp.vmanager.user")
  84. .build();
  85. }
  86. }