【問題描述】
controller 中的處理請求的方法,有時候會添加一些額外的參數。比如下面代碼中 UserVo:
@PostMapping(value = "/add-office-partner") public ApiResult addOfficePartner(@RequestBody CreateContactorParam param, @LoginUser UserVo userVo) { //... }
使用 swagger 注解接口,在生成的文檔中,會把 userVo 也解析到文檔里,但實際 userVo 並不屬於輸入參數。
在 swagger 中可以通過設置,移除 userVo 這個參數。
@Configuration @EnableSwagger2 @EnableWebMvc public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .ignoredParameterTypes(LoginUser.class) .select() .apis(RequestHandlerSelectors.basePackage("xx.xxx.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { Contact contact = new Contact("小明", "http://localhost/", "aaa@aa.com"); return new ApiInfoBuilder() .title("移動端API接口") .description("移動端API接口") .contact(contact) .version("1.0") .build(); } }
關鍵語句是 .ignoredParameterTypes(LoginUser.class)