您好,我是 Java 中的 Rest 服务新手。首先我想解释我的问题,最后我会提出问题。 我正在使用 Mozilla Rest CLIENT。我的休息课如下:
@Path("/api1")
public class RestService {
@POST
@Path("/v1")
@Consumes("application/json")
@Produces("application/json")
public String v1(String json){
//Some code here
}
@POST
@Path("/v2")
@Consumes("application/json")
@Produces("application/json")
public String v2(String json){
//Some code here
}
}
现在在这段代码中我有两个函数。 要访问 v1,调用将是:
http://localhost:8080/project_name/package/api1/v1
要访问 v2 调用将是:
http://localhost:8080/project_name/package/api1/v2
问题: 现在,在我的其余服务类中,我想添加一段代码,用于检测该服务中是否存在任何被称为 v1、v2 或 v3 的函数?
我可以这样做吗?或者有其他方法可以做到这一点吗?
谢谢
最佳答案
那么,您可以添加通配符响应:
@POST
@Path("/{what}")
@Consumes("application/json")
@Produces("application/json")
public String v2(String json, @PathParameter("what") String what){
return "The path "+what+" does not exist.";
}
但是,由于用户永远不会看到直接响应,因此您可以使用自定义的 404 进行回答:
@POST
@Path("/{what}")
@Consumes("application/json")
@Produces("application/json")
public Response v2(String json, @PathParameter("what") String what){
return Response.status(Status.NOT_FOUND).entity("The path "+what+" does not exist.");
}
这样您还可以在客户端检测到错误。
关于java - 查找 Java 中是否存在 Rest 服务中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25687521/