How to define abstract property in Model - Swagger

Viewed 798

I am trying to implement Swagger to my rest api which is development with Java Spring Boot. There is a problem on model parts of swagger. The problem is Detail abstract class and extended classes are not seem in Swagger UI's and the other output files.

You can find the code on below.

public class BaseClass {

   @ApiModelProperty(value ="Id of baseClass.", readOnly = true)
    private String     id;

  @ApiModelProperty(value = "Description of baseClass.")
    private String     description;

    @ApiModelProperty(value = "Value is equal to subclass json object value.")
    private Detail     detail;
...

My abstract class which is attribute of baseclass.

@ApiModel(value = "Detail",subTypes = {Page.class,Rank.class},discriminator = "detail")
public abstract class Detail {
}

My extended classes from Detail Abstract Class;

Page Class:

@ApiModel(parent = Detail.class,value = "Page")
public class Page extends Detail {
       @ApiModelProperty(value = "The page URL.")
        private String                  url;
    ...

Rank Class:

 @ApiModel(parent = Detail.class,value = "Rank")
 public class Rank extends Detail {

     @ApiModelProperty(value = "Number List of Rank")
     private List<String> numbers;
    ...
0 Answers
Related