Springdo c: исключить пользовательский параметр глобального заголовка для определенных конечных точек - PullRequest
0 голосов
/ 15 апреля 2020

Если я создаю OperationCustomizer, который добавляет новый глобальный настраиваемый параметр заголовка ко всем конечным точкам, как я go могу добавить список исключений для меньшего подмножества неприменимых конечных точек?

@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"));
    }

1 Ответ

1 голос
/ 01 мая 2020

Вы можете использовать OpenApiCustomiser, который вызывается после всех OperationCustomizer (s).

Вот пример кода, который вы можете адаптировать:

@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()));
                        }
                    }
            );
}
...