防止Swagger自动添加一些模型

问题描述 投票:0回答:1

我使用Spring Boot框架构建了一个REST接口。然后,我使用Swagger版本2.9.2生成文档。从下面的照片中可以看出,Swagger会自动检测到很多模型。

Models

但是,大多数都是多余的。其中,只需要ResponseMessage,其余的只是标准的Java类。

所以,我的问题是:我如何告诉Swagger公开哪些模型?

这是我的Swagger配置和我的控制器的代码片段。

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.basePackage("my.package"))
            .paths(PathSelectors.any())
            .build()
            .apiInfo(API_INFO)
            .useDefaultResponseMessages(false);
}

控制器:

@PostMapping(value = "/import", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<?> importData(HttpServletRequest request) {

    // processing...

    return ResponseEntity.created(uri)
        .body(new ResponseMessage(HttpStatus.CREATED, "Your data is being processed"));
}
java spring-boot swagger swagger-ui
1个回答
0
投票

您可以使用hidden@ApiModelProperty属性来隐藏模型的任何特定属性。它没有全球设置。 一旦你声明了swagger扫描的base-package,swagger将为你生成包装盒中所有组件的定义。但是,通过正确使用swagger annotations,您可以覆盖/自定义您的swagger文档。 请按照这些精彩的教程(12)熟悉最有用的注释和用法。

@ Api,@ ApiOperation,@ ApiResponses,@ ApiParam,@ ApiIgnore,@ ApiModel,@ ApiModelProperty等

© www.soinside.com 2019 - 2024. All rights reserved.