2

我在 RESTful 技术上玩得很开心。我正在使用这样的 Hello.java 资源:

@Path("/hello")
public class Hello {
    ... /* GET/PUT/POST */
}

有了这个,我可以使用路径访问我的资源http://my.host/res/hello。我想更加努力地“骑”RESTful。拥有这一资源路径有点无聊。

问题

我想要一个像这样动态创建的资源:

  • http://my.host/res/hello
  • http://my.host/res/hello/1
  • http://my.host/res/hello/2
  • ...
  • http://my.host/res/hello/999

为每个 .java 资源创建一个 .java 资源是没有意义的@Path("/hello/1") ... @Path("/hello/999")。正确的?可能这个子资源列表可能更大或随时间动态变化。解决方案是什么?

谢谢。

4

2 回答 2

7

您可以@Path在 Resource 类中的方法上使用注释。

@Path("/hello")
public class Hello {
    ... /* GET/PUT/POST */

    @GET
    @Path("{id}")
    public String myMethod(@PathParam("id") String id) {...}
}

路径将被连接起来,所以它会匹配/hello/13。是输入的{id}实际值的占位符,可以使用 检索@PathParam。在前面的 URI 中,Stringid的值为13

于 2013-07-25T15:29:35.253 回答
6

您必须对 REST URI 使用 PathParam 功能。http://docs.oracle.com/javaee/6/api/javax/ws/rs/PathParam.html

    @Path("/hello/{id}")
    public class Hello {

    }
于 2013-07-25T15:33:41.580 回答