【发布时间】:2016-05-03 17:11:19
【问题描述】:
使用 this post 作为参考,我为 POST 调用编写了一个简单的 Jersey 控制器方法,如下所示:
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createVisit(Visit newVisit) {
LOGGER.info("Creating visit");
this.visits.add(newVisit);
return Response.ok(newVisit)
.build();
}
这是我的 Visit 对象上的字段(构造函数和 getter/setter 被省略,因为我认为它们在这里不相关 - 如果它们有帮助,我可以添加它们):
public class Visit {
private VisitId id;
private AthleteId athleteId;
private CustomerId customerId;
private StoreId storeId;
private Instant createdUtc;
private Instant lastModifiedUtc;
}
当我在请求正文中以 JSON 格式传入有效的访问对象字段时,我看到访问对象已按预期成功填充到响应中。但是,如果我将不属于 Visit 对象的字段添加到请求正文中,它们似乎会被忽略。
我看到许多帖子试图弄清楚如何禁用FAIL_ON_UNKNOWN_PROPERTIES 属性,但我似乎遇到了相反的问题。我的理解是FAIL_ON_UNKNOWN_PROPERTIES 默认为 true,但在这种情况下,当请求正文中的 JSON 对象与我传递给我的对象不匹配时,我希望得到错误响应代码(500?) POST 方法。关于我在这里缺少什么的任何想法?
【问题讨论】:
标签: java json rest jersey jackson