2016-04-12 16 views
8
@RequestMapping(...) 
public Foo getFoo(@HeaderParam("header") final String header) { 
    ... 
} 

springfoxがそれをピックアップし、Iが闊歩-UIを見たときに、ヘッダのフィールドを有する上記のよう@HeaderParamメソッドパラメータを追加します。これはまさに私が欲しいものです。メソッド自体にパラメータを含めることなく、このヘッダパラメータをメソッドのセットに含めるようにspringfoxに指示する方法はありますか?私たちが実際に行っていることは、ヘッダーを使用するサーブレット・フィルターであり、swagger-uiを使用して簡単に設定できるようにしたいと考えています。スプリング+ Springfox +ヘッダパラメータ

+0

globalOperationParameters方法は、微細なヘッダタイプフィールドを追加する(しかし、グローバルである)に対し@HeaderParamが闊歩UIにボディ型パラメータを追加 – Julien

+0

適切なヘッダ・タイプのパラメータについて1つのメソッドに固有のもの(グローバルではない)については、http://stackoverflow.com/questions/40801442/add-a-header-parameter-in-swagger-ui-documentation-with-springfox/40801443 – Julien

答えて

28

globalOperationParametersを使用することができます。例えば、

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

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

+0

をご覧ください。この質問で - http://stackoverflow.com/questions/42348630/customizing-request-header-description-in-swagger-ui-using-springfox-swagger2 – Gandhi

7

つ以上の同一のための答えを説明した: -

@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); 
    } 
+1

それは多くの助けをしてくれてありがとう、最後のリターンを変更するpathMapping( "")。globalOperationParameters(aParameters);新しいDocket(DocumentationType.SWAGGER_2).select()を返します。 – Nazeel

関連する問題