如果我创建向所有端点添加新的全局自定义标头参数的OperationCustomizer,如何为较小的不适用端点子集添加排除列表?
@Bean
public OperationCustomizer customize() {
return (operation, handlerMethod) -> operation.addParametersItem(
new Parameter()
.in("header")
.required(true)
.schema(new StringSchema())
.description("Customer Header Parameter")
.name("custom-header-parameter"));
}
答案 0 :(得分:0)
您可以使用OpenApiCustomiser,在所有OperationCustomizer之后调用。
以下是您可以修改的示例代码:
@Bean
public OpenApiCustomiser customerGlobalHeaderOpenApiCustomiser() {
return openApi -> openApi.getPaths().values().stream().flatMap(pathItem -> pathItem.readOperations().stream())
.forEach(operation -> {
// remove the global header only for operationid = search
if ("search".equals(operation.getOperationId())) {
operation.getParameters().removeIf(parameter1 -> "custom-header-parameter".equals(parameter1.getName()));
}
}
);
}