繁体   English   中英

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

[英]How can I use an optional number of parameters in a Jersey REST method?

我是新泽西人的新手。 因此,请原谅任何错误。

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

是否可以对两种类型的调用使用相同的方法名称,是否带有可选参数? 我试图指定两个路径,但是得到了ModelValidationException ,它说:

资源模型具有用于HTTP方法GET的模棱两可(子)资源方法,并且由Java方法public上的“ @Consumes”和“ @Produces”注释定义的输入mime类型。

代码示例:

@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结合使用, @DefaultValue两种方法@DefaultValue

使用这样的路径模式:

@Path("connectedmhubs/{mhubid}")

使path参数成为必需参数。 但是,您可以使用正则表达式来克服此限制。 有关详细信息,请参见此链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM