Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提供从泽西岛的父资源到子资源的链接_Java_Rest_Jersey_Jax Rs - Fatal编程技术网

Java 提供从泽西岛的父资源到子资源的链接

Java 提供从泽西岛的父资源到子资源的链接,java,rest,jersey,jax-rs,Java,Rest,Jersey,Jax Rs,我在Jersey中实现了一个RESTful服务,它由一个顶级资源和许多子资源组成。举例说明: 父资源: @Path("parent") public class ParentResource { private SubResourceA subResourceA; private SubResourceB subResourceB; private SubResourceC subResourceC; public ParentResource() { su

我在Jersey中实现了一个RESTful服务,它由一个顶级资源和许多子资源组成。举例说明:

父资源:

@Path("parent")
public class ParentResource {
   private SubResourceA subResourceA;
   private SubResourceB subResourceB;
   private SubResourceC subResourceC;

   public ParentResource() {
      subResourceA = new SubResourceA();
      subResourceB = new SubResourceB();
      subResourceC = new SubResourceC();
   }

   @Path("a")
   public SubResourceA getA() {
      return subResourceA;
   }

   @Path("b")
   public SubResourceB getB() {
      return subResourceB;
   }

   @Path("c")
   public SubResourceC getC() {
      return subResourceC;
   }
我要寻找的是在ParentResource类上定义一个GET方法,该方法返回指向该类中所有可用子资源的链接(类似于在文件系统上,如果选择一个包含文件夹的文件夹,则会看到子文件夹)

如果没有这样的实现,如果我点击GET/parent,那么我将从我的web服务中获得404。理想情况下,GET/parent应该给我一个指向SubResourceA、SubResourceB和SubResourceC的链接

有人知道实现这种特性的标准约定吗?如果可能,特别是在JAX-RS/Jersey中


谢谢

您不需要返回实例。您可以返回类,让Jersey为您创建它。你可以做一些简单的事情,比如

@Path("parent")
public class ParentResource {

    @Path("{x}")
    public Class getX(@PathParam("x") String x) {
        switch (x) {
            case "a": return SubResourceA.class;
            case "b": return SubResourceB.class;
            case "c": return SubResourceC.class;
            default: throw new WebApplicationException(404);
        }
    }

    public static class SubResourceA {
        @GET               // @PathParam is forwarded parent
        public String getA(@PathParam("x") String x) {
            return "A";
        }
    }
}
“我要找的是在ParentResource类上定义一个GET方法,该方法返回指向所有子资源的链接”

这打破了子资源定位器方法的定义。不应使用任何HTTP方法注释对其进行注释。这些注释应仅位于子资源类“方法”中