我正在尝试创建一个rest API,您可以在其中使用不同的模式(大小约束,调整,扩展,强制或调整大小)来控制图像的大小,每种模式都有不同的参数。这是我的课程图:
这是我的BaseSizeConstraint
:
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.WRAPPER_OBJECT
)
@JsonSubTypes({
@Type(value = CoerceConstraint.class, name = "coerce"),
@Type(value = ExtendConstraint.class, name = "extend"),
@Type(value = AdaptConstraint.class, name = "adapt"),
@Type(value = ResizeConstraint.class, name = "resize")
})
public abstract class BaseSizeConstraint implements ISizeConstraint {
}
当我尝试使用带有此主体的API将新的图像描述符添加到模板时:
{
"name": "ImgResize",
"missingImageBehavior": "Fail",
"sizeConstraint": {
"resize": {"height": 50, "width": 50 }
}
}
它有效,但是我得到的响应却不同:
{
"name": "ImgResize",
"alias": null,
"sizeConstraint": {
"width": 50,
"height": 50
},
"missingImageBehavior": "Fail"
}
如您所见,sizeConstraint不再包装,没有给出约束类型的指示...
答案 0 :(得分:0)
结果是我的ImageDescriptor的sizeConstraint吸气剂的类型为ISizeContraint
,而不是BaseSizeConstraint
(包含子类型)