web-dev-qa-db-ja.com

Spring + Springfox +ヘッダーパラメーター

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

上記の@HeaderParamメソッドパラメーターを追加すると、springfoxがそれを取得し、swagger-uiを見るとヘッダーのフィールドがあります。これはまさに私が欲しいものです。メソッド自体にパラメーターを含める必要なく、一連のメソッドにこのヘッダーパラメーターを含めるようにspringfoxに指示できる方法はありますか?実際に行っているのは、ヘッダーを使用するサーブレットフィルターです。swagger-uiを使用して簡単に設定したいのです。

28
Jay Anderson

ドケット定義でglobalOperationParametersを使用できます。たとえば.

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

詳細については、ドキュメントの #22 を参照してください。

60
Dilip Krishnan

同じためのもう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);
    }
14
Vijay Gupta