Jersey / JAX-RS资源方法输入bean验证

时间:2014-12-09 21:58:22

标签: java jersey jax-rs bean-validation dropwizard

我通过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实例,而无需在此处编写任何验证码吗?

1 个答案:

答案 0 :(得分:9)

@Valid之前添加@PathParam以验证泽西岛。

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

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