jersey-dropwizard 上的资源查询参数验证
Resource query parameter validation on jersey-dropwizard
我有一个 dropwizard application and in one resource i would like to have a required query parameter. I know jersey supports bean validation,所以我尝试使用 @NotNull 注释,但它不起作用。这是资源代码:
@Path("/resource/{id}")
@Produces(MediaType.APPLICATION_JSON)
public class MyResource {
//....constructor...
@GET
public String test(
@PathParam("id") long id,
@NotNull @QueryParam("required_param") long param) {
//....
}
}
万一不清楚,我想发生的是每当客户端发送不带参数的请求时 required_param 我想 return 一个错误。
阅读文档后,我认为可能是 dropwizard 的配置问题。所以我将这段代码添加到我的应用程序的 运行 方法中:
environment.jersey().property("jersey.config.disableAutoDiscovery", false);
environment.jersey().property("jersey.config.server.disableAutoDiscovery", false);
environment.jersey().property("jersey.config.beanValidation.disable.server", false);
不幸的是,这也不起作用。任何人都知道如何做到这一点?
您是否尝试过使用 Long
对象而不是原始类型?
我有一个 dropwizard application and in one resource i would like to have a required query parameter. I know jersey supports bean validation,所以我尝试使用 @NotNull 注释,但它不起作用。这是资源代码:
@Path("/resource/{id}")
@Produces(MediaType.APPLICATION_JSON)
public class MyResource {
//....constructor...
@GET
public String test(
@PathParam("id") long id,
@NotNull @QueryParam("required_param") long param) {
//....
}
}
万一不清楚,我想发生的是每当客户端发送不带参数的请求时 required_param 我想 return 一个错误。
阅读文档后,我认为可能是 dropwizard 的配置问题。所以我将这段代码添加到我的应用程序的 运行 方法中:
environment.jersey().property("jersey.config.disableAutoDiscovery", false);
environment.jersey().property("jersey.config.server.disableAutoDiscovery", false);
environment.jersey().property("jersey.config.beanValidation.disable.server", false);
不幸的是,这也不起作用。任何人都知道如何做到这一点?
您是否尝试过使用 Long
对象而不是原始类型?