【问题描述】
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)