【问题标题】:java/jersey/jackson - validate input JSONjava/jersey/jackson - 验证输入 JSON
【发布时间】:2015-03-10 00:22:21
【问题描述】:

我正在编写一个带有 Java/Jersey/Jackson 堆栈的 REST API。所有 JSON 解析和生成都由 Jackson 完成。 REST 层由 Jersey 处理。它将嵌入到 Grizzly 容器中。

在我的 API 中,我的端点接受 JSON。例如:

@POST
public Response post(final SomeObject input) {
    return ...;
}

验证input 的最佳方法是什么?我想验证某些事情:

  • input 不能为空
  • input 的某些字段不能为空
  • input 的某些字段必须遵循正则表达式(文本字段)
  • input 的某些字段必须在一个范围内(数字字段)
  • ...

如果可能,我想尽可能少地更改我的代码。也就是说,我更喜欢注释我的类、方法和参数以集成验证。

【问题讨论】:

标签: java json validation jersey jackson


【解决方案1】:

你也可以BeanValidationApi(javax.validation.constraints)然后用@NotNull,@Pattern等注释你的字段。Jersey还提供Bean Validation Support

【讨论】:

    【解决方案2】:

    您可以使用JSON Schema。

    而且由于您使用的是 Jackson,因此您可以使用 my library,它正是这样做的。

    但这意味着您需要更改逻辑,以便接收 JSON(作为 JsonNode)而不是序列化的 POJO,然后才序列化为您的 POJO。

    【讨论】:

      猜你喜欢
      • 2020-02-20
      • 1970-01-01
      • 2015-04-22
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 2013-11-28
      相关资源
      最近更新 更多