【发布时间】:2019-03-14 16:41:02
【问题描述】:
我使用 Spring Boot 框架构建了一个 REST 接口。然后,我使用 Swagger 2.9.2 版来生成文档。从下图可以看出,Swagger 自动检测了很多模型。
但是,它们中的大多数都是多余的。其中,只有ResponseMessage是必须的,其余的都是标准的Java类。
所以,我的问题是:我如何告诉 Swagger 要公开哪些模型?
这是我的 Swagger 配置和我的控制器的代码 sn-p。
@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"));
}
【问题讨论】:
-
不完全回答这个问题,但我可以有选择地使用 .ignoredParameterTypes() 从 Docket 中删除模型。我参考了stackoverflow.com/questions/46651381/…的答案
标签: java spring-boot swagger swagger-ui