swagger 生成的接口文档,隐藏接口的某个参数

【问题描述】

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)

上一篇:ASP.NET Web API 使用Swagger生成在线帮助测试文档


下一篇:使用ASP.NET Web API Help Pages 创建在线接口文档