gpt4 book ai didi

jax-rs - Swagger JaxRS 可以用鉴别器做 ApiModel 继承吗?

转载 作者:行者123 更新时间:2023-12-03 21:20:50 24 4
gpt4 key购买 nike

我已经尝试使用 Swagger JaxRs 当前的 master 1.0 和 Swagger 2.0 的 devel_2.0 分支。

@ApiModel(value = "Animal", 
subTypes = {Dog.class, Lion.class},
discriminator = "type")
public class Animal {

@ApiModelProperty(value = "the discriminator field.")
private String type;

这是子类之一,
@ApiModel(value = "Lion", parent = Animal.class)
public class Lion {

@ApiModelProperty(value = "the discriminator field.")
private String type;

我没有找到很多可以期待的示例,但这是我当前 Swagger 2.0 项目 swagger.json 文件中的输出。
   "definitions":{
"Animal":{
"properties":{
"type":{
"type":"string",
"description":"the discriminator field."
}
},
"discriminator":"type"
},

定义下没有 Dog 或 Lion 对象的迹象。请求对象中没有任何内容。我不确定如果它起作用会是什么样子,但如果你知道它应该如何工作,请告诉我。

如果您想查看完整的上下文,所有代码都在这里。

https://github.com/javatestcase/RestEasy/tree/RestEasyVersion2

最佳答案

你的例子帮助了我很多,所以我想我应该帮助你,因为我现在开始工作了!

您需要告诉序列化/反序列化如何绑定(bind)实现:

@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME, // Were binding by providing a name
include = JsonTypeInfo.As.PROPERTY, // The name is provided in a property
property = "type", // Property name is type
visible = true // Retain the value of type after deserialisation
)
@JsonSubTypes({//Below, we define the names and the binding classes.
@JsonSubTypes.Type(value = Lion.class, name = "Lion"),
@JsonSubTypes.Type(value = Dog.class, name = "Dog")
})
@ApiModel(value = "Animal", subTypes = {Dog.class, Lion.class}, discriminator = "type")
public class Animal {

关于jax-rs - Swagger JaxRS 可以用鉴别器做 ApiModel 继承吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27616061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com