|  |  |  | 
|---|
|  |  |  | package com.genersoft.iot.vmp.conf; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Value; | 
|---|
|  |  |  | import org.springframework.context.annotation.Bean; | 
|---|
|  |  |  | import org.springframework.context.annotation.Configuration; | 
|---|
|  |  |  | import springfox.documentation.builders.ApiInfoBuilder; | 
|---|
|  |  |  | import springfox.documentation.builders.PathSelectors; | 
|---|
|  |  |  | import springfox.documentation.builders.RequestHandlerSelectors; | 
|---|
|  |  |  | import springfox.documentation.builders.RequestParameterBuilder; | 
|---|
|  |  |  | import springfox.documentation.schema.ScalarType; | 
|---|
|  |  |  | import springfox.documentation.service.ApiInfo; | 
|---|
|  |  |  | import springfox.documentation.service.Contact; | 
|---|
|  |  |  | import springfox.documentation.spi.DocumentationType; | 
|---|
|  |  |  | import springfox.documentation.spring.web.plugins.Docket; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Configuration | 
|---|
|  |  |  | public class Swagger3Config { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${swagger-ui.enabled: true}") | 
|---|
|  |  |  | private boolean enable; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createRestApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("1. 全部") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/"); | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createRestGBApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("2. 国标28181") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.gb28181")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createRestONVIFApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("3. ONVIF") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.onvif")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createRestStreamProxyApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("4. 拉流转发") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.streamProxy")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createRestStreamPushApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("5. 推流管理") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.streamPush")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createServerApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("6. 服务管理") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.server")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @Bean | 
|---|
|  |  |  | public Docket createUserApi() { | 
|---|
|  |  |  | return new Docket(DocumentationType.OAS_30) | 
|---|
|  |  |  | .apiInfo(apiInfo()) | 
|---|
|  |  |  | .groupName("7. 用户管理") | 
|---|
|  |  |  | .select() | 
|---|
|  |  |  | .apis(RequestHandlerSelectors.basePackage("com.genersoft.iot.vmp.vmanager.user")) | 
|---|
|  |  |  | .paths(PathSelectors.any()) | 
|---|
|  |  |  | .build() | 
|---|
|  |  |  | .pathMapping("/") | 
|---|
|  |  |  | .enable(enable); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private ApiInfo apiInfo() { | 
|---|
|  |  |  | return new ApiInfoBuilder() | 
|---|
|  |  |  | .title("WVP-PRO 接口文档") | 
|---|
|  |  |  | .description("更多请咨询服务开发者(18010473990@@163.com)。") | 
|---|
|  |  |  | .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")) | 
|---|
|  |  |  | .version("1.0") | 
|---|
|  |  |  | .description("更多请咨询服务开发者(https://github.com/648540858/wvp-GB28181-pro)。") | 
|---|
|  |  |  | .contact(new Contact("648540858", "648540858", "648540858@qq.com")) | 
|---|
|  |  |  | .version("2.0") | 
|---|
|  |  |  | .build(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|