我有一个休息服务,如果我有一个示例POST的方法,它使用application / json并且该方法的参数是另一个描述require json字段的类,那么有一种方法可以让jackson验证输入json之前输入方法? 这是一个小代码:
@PUT
@Consumes("application/json")
public UserDataResourceObject login(UserResourceObject userResourceObject)
{
Query query = getEm().createNamedQuery("User.authorize");
if (userResourceObject == null)
{
throw new WebApplicationException(Response.Status.BAD_REQUEST);
}
query.setParameter("username", userResourceObject.getUsername());
query.setParameter("password", Utility.getMD5Value(userResourceObject.getPassword()));
Exception e = null;
try
.................
UserResourceObject描述了这个结构:
{
"username" : "admin",
"password" : "123456"
}
我想如果我改变杰克逊上面的json的结构,给我一个示例400(错误请求)的例外。我怎么能这样做?
答案 0 :(得分:4)
您可以使用Bean Validation(JSR 303)来验证您收到的数据。 您有http://bval.apache.org/和http://hibernate.org/validator/个实施。
然后你就可以这样做:
@PUT
@Consumes("application/json")
public UserDataResourceObject login(@Valid UserResourceObject userResourceObject) {