JAX-RS @QueryParamの例
JAX-RSでは、 `@ QueryParam`アノテーションを使用してURIクエリパラメータをJavaメソッドに挿入できます。例えば、
…./users/query?url=mkyong.com
上記のURIパターンでは、クエリパラメータは "** url = mkyong.com ** "で、 `@QueryParam(" url ")`でurl値を取得できます。 === 1. @QueryParamの例 JAX-RSで `@ QueryParam`を使用した完全な例を参照してください。
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
@Path(“/users”)
public class UserService {
@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();
}
}
URIパターン: "** users/query?from = 100
getUsers is called, from : 100, to : 200, orderBy[age, name]….
2.プログラムによるクエリパラメータ
あるいは、 “@Context UriInfo”を介して文法的にクエリパラメータを取得することもできます。以下の同等のバージョンを参照してください。
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
@Path("/users")
public class UserService {
@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();
}
}
URIパターン: “** users/query?from = 100
getUsers is called, from : 100, to : 200, orderBy[age, name].... === 3. @DefaultValueの例 `@ DefaultValue`はオプションのパラメータに適しています。
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Response;
@Path(“/users”)
public class UserService {
@GET
@Path("/query")
public Response getUsers(
@DefaultValue("1000") @QueryParam("from") int from,
@DefaultValue("999")@QueryParam("to") int to,
@DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) {
return Response
.status(200)
.entity("getUsers is called, from : " + from + ", to : " + to
+ ", orderBy" + orderBy.toString()).build();
}
}
URIパターン: "** users/query ** "
getUsers is called, from : 1000, to : 999, orderBy[name]….
ソースコードをダウンロードする
ダウンロードする – リンク://wp-content/uploads/2011/07/JAX-RS-QueryParam-Example.zip[JAX-RS-QueryParam-Example.zip](6 KB)
参考文献
@QueryParam JavaDoc]。
http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/core/Context.html
[JAX-RS
@Context JavaDoc]。
http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/core/UriInfo.html
[JAX-RS
UriInfo JavaDoc]。
http://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/DefaultValue.html
[JAX-RS
@DefaultValue JavaDoc]