昂首阔步不显示继承的对象

Tho*_*s W 8 java swagger swagger-ui

我有一个继承自“ SuperModel”类的“ SubModel”类。我的REST请求返回这些类之一的对象。现在,我想在我的Swagger UI中记录这将返回SubModel的对象或SuperModel的对象。我用谷歌搜索了这个用例,发现了@ApiModel注释,但是它们不起作用,有人知道我在这里做错了什么吗?

@ApiModel(value = "SuperModel", discriminator = "foo", subTypes = { 
SubModel.class })
public class SuperModel
{
    @ApiModelProperty(required = true)
    private String foo;

    public String getFoo() {
        return this.foo;
    }

    public void setFoo( String foo ) {
        this.foo = foo;
    }
}  

@ApiModel(value = "SubModel")
public class SubModel extends SuperModel
{
    private int    number;

    public int getNumber() {
        return this.number;
    }

    public void setNumber( int number ) {
        this.number = number;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在Swagger UI中看到的只是:

SuperModel {
  foo (string)
}
Run Code Online (Sandbox Code Playgroud)

我在以下站点上找到了示例:https : //github.com/swagger-api/swagger-core/wiki/Annotations#apiresponses-apiresponse,但它不起作用:-(

有任何想法吗?非常感谢!

Vla*_*scu 3

springfox 尚不支持此功能。请参阅https://github.com/springfox/springfox/issues/868

是的,这很令人困惑,因为它们确实具有带有“鉴别器”和“子类型”等属性的注释,但它们不起作用。

更新:该问题同时已关闭(2018 年 3 月),它应该在 Springfox >= 2.9.0 中工作(我自己没有测试过)