我的目标是处理
http://localhost:8080/getuser?name=Mike&numberOfWorks=2&salary=1
职位数量范围为 0-2,薪资范围为 0(无)到 2(巨大)。 另一个要求是设置年龄和薪水的默认值。 我已经用 Java 编写了这段代码,但是它无法正常工作(返回名称和两个 def 值),并且我没有机会调试它。
public Response getPerson(
@QueryParam("name") String name,
@DefaultValue("0") @QueryParam("{numberOfWorks: [0-2]}") int availability,
@DefaultValue("0") @QueryParam("{salary: [0-2]") int sort) throws NotFoundException{
return Response.status(200).entity(name + ", " + availability + ", " + sort).build();
使用上述 HTTP 时该方法的返回值为
Mike, 0, 0
编辑
不幸的是,我无法使用@Pattern 方法。因此,如果有其他选择,我将不胜感激。
最佳答案
注释必须提及查询参数的名称:
@QueryParam("numberOfWorks")
如果您使用JAX-RS 2.0,则可以添加
@Pattern("[0-2]")
成功
@QueryParam("numberOfWorks") @Pattern("[0-2]") int availability
关于java - 如何在REST Web服务中处理带有多个参数的HTTP请求+限制数字范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36532249/