在Java中解析URI路径参数

时间:2015-01-30 11:36:42

标签: java rest java-ee path-parameter

其中一个REST apis我正在以这种格式使用返回的URL:

/api/variables{/id}
/api/projects{/id}{?skip}

在@Path注释中的JAX-WS实现中似乎使用了相同的url模式,所以希望已经有一些库可以帮助完成这项任务。

解析以这种方式格式化的url并使用参数填充它的最佳方法是什么?我最好使用一些库或Java EE核心类,以避免自定义开发。

编辑: 我希望实现的目标:

Strnig template = "/api/projects{/id}{?skip}"; // This is provided by REST service
SomeParser sp = new SomeParser(template);
sp.setParam("id", "1a");
sp.setParam("skip", "20");
sp.getUrl(); // Expected output: /api/projects/1a/?skip=20

与此同时,我发现URI的格式来自RFC6570

问题是:是否准备好使用能够做到这一点的库?

1 个答案:

答案 0 :(得分:0)

使用JAX-RS:

@Path("/api")
public class RestService {

  @Path("/variables/{id}")
  public List<Variable> getVariables(@PathParam("id") String id), 
                                     @QueryParam("skip") @DefaultValue("false") boolean skip) {
      // ...
  }

  @Path("/projects/{id}")
  public List<Project> getProjects(@PathParam("id") String id) {
      // ...
  }

}

请注意/在{}之外。

注意: Java EE仅提供API。 您需要使用some implementation