RESTful Web服务对必填字段的请求验证

时间:2015-08-05 09:40:34

标签: java rest jersey bean-validation

在Java RESTful服务请求参数验证中,如果请求有效负载中不存在所需的参数,则应抛出错误。

我已经尝试了以下但是它没有工作:

public class OrderItemDetailsDTO {

    @XmlElement(required = true)
    private long orderItemId;

    // getters and setters...
}

我还尝试了@NotNull@min(1),但都没有奏效。即使所需的参数不存在,也会调用URL并执行方法,然后该方法抛出一个我不想要的异常。

有没有办法让错误被抛出,在转到方法之前说不存在所需的元素?...

1 个答案:

答案 0 :(得分:1)

请查看此article。这里还有一个基于该文章的小代码片段。我希望这有帮助

public class OrderItemDetailsDTO {

    @XmlElement
    @Min(1)
    private long orderItemId;

    // getters and setters...
 }

@Path("orders")
public class OrdersResource {
  @POST
  @Consumes({ "application/xml" })
  public void place(@Valid OrderItemDetailsDTO order) {
    // Jersey recognizes the @Valid annotation and
    // returns 400 when the JavaBean is not valid
  }
}