我正在尝试制作一个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不再被包装,没有给出关于约束类型的指示。。。