Deb*_*Roy 7 spring-boot springdoc springdoc-openapi-ui
用于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();
}
Run Code Online (Sandbox Code Playgroud)
以及将标准标头添加到所有端点的类
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
实际产量
预期输出
解决方法
添加要在应用程序属性文件中包含/排除的路径可以解决该错误。但代码级别的一些东西将非常感激。
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();
}
Run Code Online (Sandbox Code Playgroud)
编辑:参考@Value 不提供应用程序属性 Spring Boot 的值更新答案
归档时间: |
|
查看次数: |
8686 次 |
最近记录: |