我有一个带有Swagger 3.17.1的SpringBoot应用程序。
我有一个抽象类AbstractDtoClass
和一个扩展了第一个的DTO类DtoClass
。
我有几个REST请求定义,并且都返回一个AbstractDtoClass
对象,没有一个返回DtoClass
。
结果,Swagger模型(即我可以在/ v2 / api-docs的“定义”中找到的DTO模型包含AbstractDtoClass
,但不包含DtoClass
。
我也希望DtoClass
出现在Swagger模型中。我该怎么办?
我已经尝试将@SwaggerDefinition
放在DtoClass
定义上。我试图将@ApiModel(parent = AbstractDtoClass.class)
放在DtoClass
定义上。即使我不确定我是否正确使用鉴别器,我仍试图将@ApiModel(subTypes = {DeclarationDto.class}, discriminator = "DeclarationDto")
放在AbstractDtoClass
定义上。
没有任何作用。
谁能帮我吗?
您可以使用以下方法来添加其他模型,这些模型不属于任何批注或可能是隐式的。
springfox.documentation.spring.web.plugins.Docket#additionalModels(ResolvedType first, ResolvedType... remaining)
下面是示例DocketConfig,
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private final TypeResolver typeResolver;
public SwaggerConfig(final TypeResolver typeResolver) {
this.typeResolver = typeResolver;
}
@Bean
public Docket docketApi() {
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.rmurugaian.service.pricing.server"))
.build()
.additionalModels(typeResolver.resolve(DummyDTO.class));
}