Добавление заголовка ко всем запросам чванства - PullRequest
0 голосов
/ 22 мая 2018

В настоящее время я добавляю swagger в старый проект и хотел бы добавить заголовок ко всем запросам.В приложении есть фильтр, который проверяет, достаточно ли высока версия вашего приложения, и, следовательно, требует, чтобы клиенты отправляли заголовок version.

Возможно ли добавить это ко всем запросам или мне нужно переписать всеконечные точки имеют этот параметр заголовка (их много).Было бы неплохо иметь глобальный параметр заголовка.

Следует добавить, что я хотел бы сделать это на Java, а не изменять json / yaml напрямую

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете добавить глобальные рабочие параметры в вашей конфигурации Docket, как это было сделано в последней строке - .globalOperationParameters(operationParameters()),

Я показываю более широкую конфигурацию, но вы должны сосредоточиться на этом вопросе только на последней строке.

@Bean
    public Docket swaggerPlugin() {
    return new Docket(DocumentationType.SWAGGER_2)
        .select()
        .paths(PathSelectors.any())
        .apis(Predicates.or(
            RequestHandlerSelectors
                .basePackage(....),
            RequestHandlerSelectors
                .basePackage(....)))
        .build().directModelSubstitute(LocalDate.class, String.class)
        .genericModelSubstitutes(ResponseEntity.class)
        .apiInfo(apiInfo())
        .securitySchemes(Lists.newArrayList(apiKey()))
        .securityContexts(Arrays.asList(securityContext()))
        .globalOperationParameters(operationParameters());
    }


private List<Parameter> operationParameters() {
    List<Parameter> headers = new ArrayList<>();
    headers.add(new ParameterBuilder().name("HEADER_1")
        .description("HEADER_1 DESC")
        .modelRef(new ModelRef("string")).parameterType("header")
        .required(false).build());

    headers.add(new ParameterBuilder().name("HEADER_2")
        .description("HEADER_2 DESC")
        .modelRef(new ModelRef("string")).parameterType("header")
        .required(false).defaultValue("0").build());
    return headers;
    }

Как показано, значение по умолчанию также может быть предоставлено.Кроме того, эти два заголовка будут отображаться в интерфейсе Swagger, поскольку текстовые поля и значения можно вводить вручную для каждого запроса.

...