java - 查找 Java 中是否存在 Rest 服务中的方法

标签 java rest

您好,我是 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/

相关文章:

java - wso2 IS 520 用户帐户已禁用声明验证为 'admin'

Java REST 使用数据源

ruby-on-rails - 在 Rails 中添加自定义格式(可与 respond_to 一起使用)

spring - 如何在 Spring RestTemplate 请求上设置 "Accept:" header ?

java - Hackerrank 不接受有效的解决方案

java - 如何使用 Java 使用 PDFExtStream 从 PDF 中提取文本

java - JSONObject 到 Java bean 类不起作用

iOS : display svg from JSON

java - 如何确保每个 ejb-client 都有一个 ejb-impl(在耳朵里)?

java - 读取 Java 属性文件而不转义值