【发布时间】:2012-12-14 16:52:41
【问题描述】:
我想在 REST 端点上接受 JSON 并将其转换为正确的类型以便立即验证。
端点如下所示:
@POST
public Response createCar(@Valid Car car) {
// persist to DB
// ...
}
但是 Car 有很多子类,例如Van、SelfDrivingCar、RaceCar 等。我如何在端点上接受不同的 JSON 表示,同时保留验证代码
在 Resource 中像 @Valid Car car?
再次:我发送 JSON 格式(这里是 Car 的子类,即 SelfDrivingCar):
{
"id" : "t1", // every Car has an Id
"kind" : "selfdriving", // every Car has a type-hint
"max_speed" : "200 mph", // some attribute
"ai_provider" : "fastcarsai ltd." // this is SelfDrivingCar-specific
}
我希望验证机制查看kind 属性,在此处创建适当子类的实例,例如SelfDrivingCar 并执行验证。
我知道我可以为所有类型的汽车创建不同的端点,但这似乎并不干燥。而且我知道我可以使用真正的Validator 代替注释并手动完成,所以我只是问是否有一些优雅的捷径可以解决这个问题。
【问题讨论】:
标签: java json validation jax-rs dropwizard