gpt4 book ai didi

spring-boot - Springdoc GroupedOpenApi 不遵循使用 OperationCustomizer 设置的全局参数

转载 作者:行者123 更新时间:2023-12-04 13:13:13 24 4
gpt4 key购买 nike

使用时GroupedOpenApi要定义 API 组,参数列表中不存在添加到每个端点的通用参数集。
下面是各自的代码

@Bean
public GroupedOpenApi v1Apis() {
return GroupedOpenApi.builder().group("v1 APIs")
// hide all v2 APIs
.pathsToExclude("/api/v2/**", "/v2/**")
// show all v1 APIs
.pathsToMatch("/api/v1/**", "/v1/**")
.build();
}
以及将标准头添加到所有端点的类
@Component
public class GlobalHeaderAdder implements OperationCustomizer {
@Override
public Operation customize(Operation operation, HandlerMethod handlerMethod) {
operation.addParametersItem(new Parameter().$ref("#/components/parameters/ClientID"));
operation.addSecurityItem(new SecurityRequirement().addList("Authorization"));
List<Parameter> parameterList = operation.getParameters();
if (parameterList!=null && !parameterList.isEmpty()) {
Collections.rotate(parameterList, 1);
}
return operation;
}
}
实际产量
Actual Output
预期产出
Expected Output
要重现该问题,请克隆 https://github.com/debargharoy/springdoc-test
解决方法
在应用程序属性文件中添加要包含/排除的路径可以解决错误。但是代码级别的东西将不胜感激。

最佳答案

附上所需的 OperationCustomizer对象,同时构建 Api 组。

@Bean
public GroupedOpenApi v1Apis(GlobalHeaderAdder globalHeaderAdder) {
return GroupedOpenApi.builder().group("v1 APIs")
// hide all v2 APIs
.pathsToExclude("/api/v2/**", "/v2/**")
// show all v1 APIs
.pathsToMatch("/api/v1/**", "/v1/**")
.addOperationCustomizer(globalHeaderAdded)
.build();
}
编辑:引用 @Value not providing values from application properties Spring Boot 更新答案

关于spring-boot - Springdoc GroupedOpenApi 不遵循使用 OperationCustomizer 设置的全局参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62792724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com