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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM