Spring + Springfox + Header 参数
Spring + Springfox + Header Parameters
@RequestMapping(...)
public Foo getFoo(@HeaderParam("header") final String header) {
...
}
添加一个 @HeaderParam
方法参数,如上 springfox 将其拾取,当我查看 swagger-ui 时,它有一个 header 字段。这正是我想要的。有没有一种方法可以告诉 springfox 在一组方法中包含这个 header 参数,而不必在方法本身中包含参数?我们真正要做的是一个使用 header 的 servlet 过滤器,我们希望通过 swagger-ui.
轻松设置它
您可以在摘要定义中使用 globalOperationParameters
。例如
new Docket(...)
.globalOperationParameters(
Arrays.asList(new ParameterBuilder()
.name("header")
.description("Description of header")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(true)
.build()))
有关详细信息,请参阅文档中的 #22。
另一个解释相同的答案:-
@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);
}
@RequestMapping(...)
public Foo getFoo(@HeaderParam("header") final String header) {
...
}
添加一个 @HeaderParam
方法参数,如上 springfox 将其拾取,当我查看 swagger-ui 时,它有一个 header 字段。这正是我想要的。有没有一种方法可以告诉 springfox 在一组方法中包含这个 header 参数,而不必在方法本身中包含参数?我们真正要做的是一个使用 header 的 servlet 过滤器,我们希望通过 swagger-ui.
您可以在摘要定义中使用 globalOperationParameters
。例如
new Docket(...)
.globalOperationParameters(
Arrays.asList(new ParameterBuilder()
.name("header")
.description("Description of header")
.modelRef(new ModelRef("string"))
.parameterType("header")
.required(true)
.build()))
有关详细信息,请参阅文档中的 #22。
另一个解释相同的答案:-
@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);
}