35
@RequestMapping(...)
public Foo getFoo(@HeaderParam("header") final String header) {
    ...
}

像上面 springfox 一样添加一个@HeaderParam方法参数来获取它,当我查看 swagger-ui 时,它有一个标题字段。这正是我想要的。有没有一种方法可以告诉 springfox 在一组方法中包含此标头参数,而不必在方法本身中包含参数?我们真正要做的是使用标头的 servlet 过滤器,我们希望通过 swagger-ui 轻松设置它。

4

2 回答 2

77

您可以globalOperationParameters在案卷定义中使用 。例如

new Docket(...)
            .globalOperationParameters(
        Arrays.asList(new ParameterBuilder()
            .name("header")
            .description("Description of header")
            .modelRef(new ModelRef("string"))
            .parameterType("header")
            .required(true)
            .build()))

有关详细信息,请参阅文档中的#22

于 2016-04-14T03:17:36.377 回答
18

另一个解释相同的答案:-

@Bean
    public Docket api() {
        //Adding Header
        ParameterBuilder aParameterBuilder = new ParameterBuilder();
        aParameterBuilder.name("headerName").modelRef(new ModelRef("string")).parameterType("header").required(true).build();
        List<Parameter> aParameters = new ArrayList<Parameter>();
        aParameters.add(aParameterBuilder.build());
        return new Docket(DocumentationType.SWAGGER_2).select()
                .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build().apiInfo(apiInfo()).pathMapping("").globalOperationParameters(aParameters);
    }
于 2017-03-21T08:57:34.490 回答