java - 如何在REST Web服务中处理带有多个参数的HTTP请求+限制数字范围

标签 java rest jax-rs

我的目标是处理

 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/

相关文章:

java - JSON 对象数组转 Java POJO

rest - REST 仅适用于 Web API 吗?如果不是,那么除了 Web API 之外,还有哪些系统可以遵循 REST?

java - 像耐心/克朗代克纸牌游戏一样拖动节点

java - 自 12 :00 am December 31, 1989 Java 以来的秒数

java - mysql时间戳显示以秒为单位 - 如何在java中显示

java - SSE实现(Weblogic 12.2.1.2.0 + Jax-RS 2.1(用于注册资源)+ CXF 3.2.5+ + Springboot + jersey 2.25.1)

java - JBOSS AS7 jax-rs jaas 和注释

java - 返回 JAX-RS 响应时如何更改 POJO 属性名称?

java - 将 Int 转换为 String 时出现子字符串错误

ruby-on-rails - rails : what is the “correct” (idiomatic) way to pass a parameter from new to create in a RESTful controller?