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

添加@HeaderParam方法參數如上springfox拾起,當我看招搖的UI它具有用於報頭的字段。這正是我想要的。有沒有一種方法可以告訴springfox將這個頭部參數包含在一組方法中,而不必在方法本身中包含參數?我們真正要做的是使用標題的servlet過濾器,我們希望通過swagger-ui輕鬆設置它。彈簧+ Springfox +頭參數

+0

@HeaderParam增加在揚鞭UI一體型參數而globalOperationParameters方法增加了一個細報頭類型字段(但是是全局) – Julien

+0

爲了正確頭類型參數特定於一種方法(非全局),請參閱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

謝謝你的答案,它幫助了很多,改變最後的回報語句返回新的Docket(DocumentationType.SWAGGER_2).select() .apis(RequestHandlerSelectors.any())。paths(PathSelectors.any())。build()。pathMapping(「」)。globalOperationParameters(aParameters); – Nazeel