Spring + Springfox + Header Parameters

Jay Anderson picture Jay Anderson · Apr 13, 2016 · Viewed 30.8k times · Source
@RequestMapping(...)
public Foo getFoo(@HeaderParam("header") final String header) {
    ...
}

Adding a @HeaderParam method parameter as above springfox picks it up and when I look at the swagger-ui it has a field for the header. This is exactly what I want. Is there a way I can tell springfox to include this header parameter on a set of methods without having to include the parameters on the method itself? What we really have going on is a servlet filter which uses the header and we'd like an easy to set it through the swagger-ui.

Answer

Dilip Krishnan picture Dilip Krishnan · Apr 14, 2016

You could use the globalOperationParametersin the docket definition. For e.g.

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

See #22 in the documentation for more information.