java - 如何在 Jersey REST 方法中使用可选数量的参数?

标签 java rest jersey jax-rs

我是新来的 Jersey 。所以,请原谅任何错误。

我正在尝试设置一个简单的 REST ws。 有一个方法名称 getConnectedMHubs,它有一个必需参数 thingID 和两个可选参数:timedelta

是否可以为两种类型的调用使用相同的方法名称,有和没有可选参数? 我试图指定两条路径,但得到了一个 ModelValidationException,上面写着:

A resource model has ambiguous (sub-)resource method for HTTP method GET and input mime-types as defined by"@Consumes" and "@Produces" annotations at Java methods public ...

代码示例:

@Path("/api")
public class RendezvousWebService {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("connectedmhubs/{mhubid}")
    public String getConnectedThings(@PathParam("mhubid") String strMHubID) {
        // ...
        return "{}";
    }

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @Path("connectedmhubs/{mhubid}/{time}/{delta}")
    public String getConnectedThingsExtended(@PathParam("mhubid") String strMHubID, @PathParam("time") long timestamp, @PathParam("delta") long delta){
        // ...
        return "{}";
    }

}

最佳答案

使用 @Path 使参数成为必需的。您可以使用正则表达式来解决这个问题,也可以使用 @QueryParam@DefaultValue 将这两种方法合二为一。

关于java - 如何在 Jersey REST 方法中使用可选数量的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42122377/

相关文章:

jquery - 使用ajax和rest web服务上传文件

java - `checkstyle-suppressions.xml` 的位置?

java - 其余 Jersey json 编码

java - 因缺少系统属性而抛出的正确异常

java - 在我的 session 中添加 cookie 时遇到问题

来自 Django 的 Java Web 框架

java - 使用 ServletContainer 作为 Servlet 提供静态资源

java - Hibernate @Async future 结果和延迟初始化异常

node.js - 你如何更新 Node.js 中的一对多关系?

java - rest-assured : Cannot get property 'assertionClosure' on null object调用get时出现空指针异常