【问题标题】:Springdoc GroupedOpenApi not following global parameters set with OperationCustomizerSpringdoc GroupedOpenApi 不遵循使用 OperationCustomizer 设置的全局参数
【发布时间】:2020-10-28 17:48:20
【问题描述】:

使用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;
    }
}

实际输出

预期输出

要重现该问题,请克隆 https://github.com/debargharoy/springdoc-test

解决方法

在应用程序属性文件中添加要包含/排除的路径可以解决错误。但是代码级别的东西将不胜感激。

【问题讨论】:

    标签: spring-boot springdoc springdoc-openapi-ui


    【解决方案1】:

    在构建 Api Group 时附加所需的OperationCustomizerobject。

    @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更新答案

    【讨论】:

    • 完全同意答案
    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多