如何在swagger-ui中隐藏特定方法?

问题描述 投票:1回答:1

我当前在Spring Boot 2中使用swagger-ui的2.9.2版本。我想为每个操作环境显示的方法是不同的,所以我想知道如何做到这一点。 (env ex:test,dev,prod ...)

例如,我想在开发环境中显示A方法,但我不想在生产环境中显示它。

使用@Profile("dev"),可以为每个环境设置不同的swagger-ui本身配置,但是我想做的是显示swagger,但是我想针对每个环境以不同的方式显示特定方法。]]

先谢谢您的回答。

添加:

@EnableSwagger2
@Configuration
public class SwaggerConfig {

    @Bean
    public Docket testApi() {
        String apiDomain = "test";
        String apiName = apiDomain + " API";

        ApiInfo apiInfo = new ApiInfoBuilder()
                .title(apiName)
                .description(apiName + " Document Prototype")
                .version("0.0.1")
                .build();

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName(apiDomain)
                .apiInfo(apiInfo)
                .select()
                .apis(getSelector(API_BASE_PACKAGE + "." + apiDomain))
                .paths(PathSelectors.any())
                .build();
    }

    private Predicate<RequestHandler> getSelector(String basePackage){

        return Profiles.isProd() ? Predicates.and(RequestHandlerSelectors.basePackage(basePackage), handler -> !handler.isAnnotatedWith(IgnoreForProd.class))
                : RequestHandlerSelectors.basePackage(basePackage);
    }
}

我当前在Spring Boot 2中使用swagger-ui的2.9.2版本。我想为每个操作环境显示的方法是不同的,所以我想知道如何做到这一点。 (env ex:test,dev,prod ...)对于...

java spring swagger-ui
1个回答
1
投票

为此,您需要添加@Profile批注以为Swagger UI创建自定义Docket实例。

© www.soinside.com 2019 - 2024. All rights reserved.