SpringDocConfig.java 3.0 KB

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