我是泽西岛的新手。所以,请原谅任何错误。
我正在尝试设置一个简单的REST ws。
方法名称getConnectedMHubs
具有一个必需参数thingID
和两个可选参数:time
和delta
。
是否可以为两种类型的调用使用相同的方法名称,有和没有可选参数?
我尝试指定两个pathes,但得到ModelValidationException
,其中说:
资源模型具有HTTP方法的模糊(子)资源方法 获取和输入“@Consumes”和“@Produces”定义的mime类型 Java方法公开的注释......
代码示例:
@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 "{}";
}
}
答案 0 :(得分:2)
使用@Path
强制使用参数。您可以使用正则表达式解决此问题,也可以将@QueryParam
与@DefaultValue
一起使用,将两种方法合并为一种。
答案 1 :(得分:1)