我使用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
为每个@Path("/hello/1") ... @Path("/hello/999")
创建.java资源没有意义。对?可能这个子资源列表可能更大或动态地随时间变化。解决方案是什么?
感谢。
答案 0 :(得分:7)
您可以对Resource类中的方法使用@Path
注释。
@Path("/hello")
public class Hello {
... /* GET/PUT/POST */
@GET
@Path("{id}")
public String myMethod(@PathParam("id") String id) {...}
}
路径将连接在一起,因此它将与/hello/13
匹配。 {id}
是输入实际值的占位符,可以使用@PathParam
检索。在上一个URI中,字符串id
的值为13
。
答案 1 :(得分:6)
您必须对REST URI使用PathParam功能。 http://docs.oracle.com/javaee/6/api/javax/ws/rs/PathParam.html
@Path("/hello/{id}")
public class Hello {
}