【问题标题】:Adding a header to all swagger requests为所有招摇请求添加标头
【发布时间】:2018-05-22 11:54:28
【问题描述】:

我目前正在向一个旧项目添加 swagger,我想为所有请求添加一个标头。 该应用程序有一个过滤器,用于检查您的应用程序版本是否足够高,因此需要客户端发送version 标头。

是否可以将其添加到所有请求中,或者我是否必须重写所有端点以具有此标头参数(有很多)。有一个全局标头参数会非常好。

应该补充一下,我想在Java中这样做,而不是直接更改json/yaml

【问题讨论】:

    标签: java rest swagger swagger-ui


    【解决方案1】:

    您可以在 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 UI 上可见,因为可以为每个请求手动输入文本字段和值。

    【讨论】:

    • 嗯,这是 Spring 特有的东西还是可以在“纯”Java EE 应用程序中使用?
    • 这是 springfox-swagger 和 Spring Boot 特定的。你是如何为你的项目加入 swagger 的?
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 2021-04-16
    • 2021-07-08
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多