java - RESTful Web 服务发布请求验证必填字段

标签 java rest jersey bean-validation

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

我尝试了以下方法,但没有成功:

public class OrderItemDetailsDTO {

    @XmlElement(required = true)
    private long orderItemId;

    // getters and setters...
}

我也尝试过@NotNull@min(1),但都不起作用。即使所需的参数不存在,也会调用 URL 并执行方法,然后该方法会引发我不想要的异常。

有什么方法可以在调用该方法之前抛出错误,指出所需的元素不存在?...

最佳答案

请看一下这个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
  }
}

关于java - RESTful Web 服务发布请求验证必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828789/

相关文章:

fonts - 在 Sun Java 和 OpenJDK 之间生成像素相同的文本图像

python - 如何通过父页面标题检索 Confluence 中的所有子页面?

spring - 如何模拟 REST 服务?

java - JAXB 解码器的handleEvent 未被调用

java - 大型项目代码格式化的最佳实践

java - Android 查找部分匹配的数组索引值

java - JAX-RS HATEOAS 使用 Jersey,JSON 中不需要的链接属性

jakarta-ee - jax-rs Jersey : Exception Mapping for Enum bound FormParam

java - Spring CGLIB AopProxy 干扰 Jersey 资源方法参数验证

java - 在 Java 中解析不明确的日期