目前我正在使用Jetty
+ Jersey
来根据@GET
参数设置不同的响应,如果传递了id
,它将返回任务,如果not
返回所有任务。
@GET
@Path("task")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Task> getTask(){
return tasks;
}
@GET
@Path("task")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Task> getTasks(@QueryParam("id") String id){
return task(uuid);
}
这可能吗?我该怎么办?
答案 0 :(得分:1)
这是不可能的。我们不能将多个GET方法映射到同一路径。你能做的是:
@GET
@Path("task")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Task> getTask(@QueryParam("id") String uuid){
if (id == null) {
return tasks;
}
return task(uuid);
}
通过这条路径,你只需要在@Path
中精确地预测你所期望的。
例如:
@GET
@Path("task")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Task> getTask(){
return tasks;
}
@GET
@Path("task/{id}")
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Task> getTasks(@PathParam("id") String id){
return task(uuid);
}