Is there any way to expose inheritance/ polymorphism in springfox swagger (2.7.0)? I know that swagger specification supports allOf. Is springfox support this? Below is sample domain model.
@ApiModel
public abstract class Animal{
private String name;
}
@ApiModel(parent=Animal.class)
public class Dog extends Animal{
...
}
@ApiModel(parent=Animal.class)
public class Cat extends Animal{
...
}
If controller returns Animal, swagger contract doesn't expose Cat or Dog. It only returns Animal with it's properties.
Spring-fox hadn't added support to polymorphism at the time you posted it. However, the 2.9.0 release seems to add it. Check this out
Support to polymorphism is still not available (Using 2.9.2). What we did in our project to have the models documented is just simply add them manually..
In your swaggerConfig:
@Bean
public Docket apiDocumentation() {
TypeResolver typeResolver = new TypeResolver();
return new Docket(DocumentationType.SWAGGER_2)
.additionalModels(
typeResolver.resolve(type1.class),
typeResolver.resolve(type2.class),
typeResolver.resolve(typeX.class));
}
This should make the models available in swagger-ui
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With