jiangping
2024-01-05 2c4cfb7ed1ece6c3b80f7d551a267e9367ddb12b
server/openapi/src/main/java/com/doumee/config/swagger/SwaggerConfig.java
@@ -6,6 +6,8 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.util.UriComponentsBuilder;
import springfox.documentation.PathProvider;
import springfox.documentation.RequestHandler;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
@@ -15,11 +17,15 @@
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.paths.DefaultPathProvider;
import springfox.documentation.spring.web.paths.Paths;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import static springfox.documentation.spring.web.paths.Paths.removeAdjacentForwardSlashes;
/**
 * Swagger配置
@@ -31,16 +37,18 @@
@EnableKnife4j
public class SwaggerConfig {
    @Value("${swagger.host:}")
    @Value("${swagger.host}")
    private String host;
    @Value("${swagger.context-path}")
    private String contextPath;
    @Value("${swagger.title:接口文档}")
    private String title;
    @Value("${swagger.description:}")
    @Value("${swagger.description}")
    private String description;
    @Value("${project.version:}")
    @Value("${project.version}")
    private String version;
    @Bean
@@ -53,18 +61,27 @@
    }
    @Bean
    public Docket getDocket3() {
        return new Docket(DocumentationType.SWAGGER_2)
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(this.getApiInfo()).groupName("【华晟访客系统交互接口openapi】")
                .host(host)
                .select()
                .apis( basePackage("com.doumee.api"))
                .apis( basePackage("com.doumee.api.web"))
                // 设置需要被扫描的类,这里设置为添加了@Api注解的类
//                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(this.getParameterList());
                 docket.pathProvider(new DefaultPathProvider(){
                     @Override
                     public String getOperationPath(String operationPath) {
                         return contextPath+super.getOperationPath(operationPath);
                     }
                 }) ;
        return docket;
    }
    private List<Parameter> getParameterList() {
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();