我想创建一个REST服务,其中参数是一个具有非固定数量的术语的路径。例如:
@Path("obj")
public class ObjectResource {
@GET
@Path(???)
public Response getObj(@Param(???) String path) {
....
}
}
如果请求网址如下:
http://myhost.xyz/app/obj/var/share/www
方法 getObj 会将路径参数作为字符串
var/share/www
或者,可以在单独的有序元素中使用“var”“share”“www”获得数组(或 Collection )。 (无论如何,我只会对单个字符串执行 String.split()。)
可以这样做吗?
答案 0 :(得分:2)
您可以尝试使用PathSegment。
@Path("obj")
public class ObjectResource {
@GET
@Path("{var: \\.+}")
public Response getObj(@PathParam("var") final PathSegment path) {
final String value = path.getPath();
}
}
编辑:实际工作原理如下:
@GET
@Path("obj")
public class ObjectResource {
@Path("{part: .*}")
@Produces(MediaType.APPLICATION_JSON)
public Response getObj(@PathParam("part") String pathpart) {
// just return the path
return Response.ok(pathpart).build();
}
}