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)

原文地址:https://www.cnblogs.com/qkhh/p/8607454.html