2013年4月16日 星期二

在 JAX-RS 取得 Get 參數

在 JAX-RS(Jersey)環境中,要取得 HTTP Request 中,帶在網址上的 Get 參數
可以參考 [1] 的範例,以下轉錄 [1] 的範例的部份內容。

方法 1:
@GET
@Path("/query")
public Response getUsers(
  @QueryParam("from") int from,
  @QueryParam("to") int to,
  @QueryParam("orderBy") List<String> orderBy) {
 
  return Response
     .status(200)
     .entity("getUsers is called, from : " + from + ", to : " + to
    + ", orderBy" + orderBy.toString()).build();
}
其中有趣的地方是..原來 HTTP Request 是可以允許同名稱的變數有好幾個(如範例的 orderBy)
在 JAX-RS 中可以透過 List 的方式取得~。

方法 2:
@GET
@Path("/query")
public Response getUsers(@Context UriInfo info) {
  String from = info.getQueryParameters().getFirst("from");
  String to = info.getQueryParameters().getFirst("to");
  List<String> orderBy = info.getQueryParameters().get("orderBy");

  return Response
     .status(200)
     .entity("getUsers is called, from : " + from + ", to : " + to
    + ", orderBy" + orderBy.toString()).build();
}
參考資料:
1、JAX-RS @QueryParam Example

沒有留言: