如何dynacmicaly启用swagger禁用属性

时间:2017-04-25 18:35:40

标签: swagger

我们有两个版本的Class XXX。在版本1中,它包含属性x并且不包括属性y,在第二个版本中,x被排除在外,并且包含y。

我无法做到这一点,因为我无法将参数传递给隐藏属性,它需要一个contsant表达式。

这是我使用的示例代码,数量为xx。

@ApiModelProperty(dataType = "Float", required = false, notes = "Item Sequence", position = 5, hidden = this.isOpenMapping)
    public Float getQuantity() {
        return quantity;
    }

this.isOpenMapping是类属性,用于区分版本1还是版本。

如何解决这个问题?如果您需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

swagger工作时,你能解决问题的最接近的事情是polymorphism一个班级。尽管在Swagger中没有完全支持这一点,但它实际上可以在autogen代码中稍作努力。有关详细信息,请参阅here

使用polymorphism,您可以根据请求的实体类型动态创建不同的响应,共享公共代码库。

也就是说,考虑实施compositioninheritance逻辑。请参阅here关于Swagger继承和组合。