我当前在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 ...)对于...
为此,您需要添加@Profile
批注以为Swagger UI创建自定义Docket
实例。