Swagger不显示继承的对象。

11

我有一个名为"SubModel"的类,它继承自类"SuperModel"。我的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;
    }
}

我在Swagger UI中看到的只有:

SuperModel {
  foo (string)
}
我在这个网站上找到了示例:https://github.com/swagger-api/swagger-core/wiki/Annotations#apiresponses-apiresponse,但它不起作用 :-( 有什么想法吗?非常感谢!

可能是 Swagger 继承和组合 的重复问题。 - James Fry
同样对于C#,有什么想法吗? - Tayyebi
1个回答

3

Springfox目前还不支持这个功能。请参考https://github.com/springfox/springfox/issues/868

是的,这很令人困惑,因为它们具有诸如“discriminator”和“subTypes”之类的带属性的注释,但它们不起作用。

更新:这个问题已经在2018年3月关闭,应该可以在Springfox >= 2.9.0中正常工作(我自己没有测试过)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接