@RequestMapping(...)
public Foo getFoo(@HeaderParam("header") final String header) {
...
}
上記の@HeaderParam
メソッドパラメーターを追加すると、springfoxがそれを取得し、swagger-uiを見るとヘッダーのフィールドがあります。これはまさに私が欲しいものです。メソッド自体にパラメーターを含める必要なく、一連のメソッドにこのヘッダーパラメーターを含めるようにspringfoxに指示できる方法はありますか?実際に行っているのは、ヘッダーを使用するサーブレットフィルターです。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 を参照してください。
同じためのもう1つの説明された答え:-
@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);
}