泽西岛/JAX-RS 资源方法输入 Bean 验证



我正在通过DropWizard 0.7.1使用Jersey/JAX-RS来公开RESTful服务端点。我所有的实体 POJO 都用 JAX-RS 和 Hibernate/JSR-303 Bean 验证注释进行了注释,如下所示:

public class Widget {
    @JsonProperty("fizz")
    @NotNull
    @NotEmpty
    private String fizz;     // Can't be empty or null
    @JsonProperty("buzz")
    @Min(value=5L)
    private Long buzz;       // Can't be less than 5
    // etc.
}

当资源方法收到这些 POJO 之一作为输入时(在后台,DropWizard 已经将 HTTP 实体 JSON 反序列化为Widget实例),我想根据 Hibernate/Bean 验证注释对其进行验证:

@POST
Response saveWidget(@PathParam("widget") Widget widget) {
    // Does DropWizard or Jersey have something built-in to automagically validate the
    // 'widget' instance?
}

是否可以将 DropWizard/Jersey 配置为验证我的widget实例,而无需在此处编写任何验证代码?

@PathParam之前添加@Valid以使用泽西岛进行验证。

请参阅 https://jersey.java.net/documentation/latest/bean-validation.html#d0e12201

您可能需要执行一些配置。

最新更新