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