/employees/query?url=dineshonjava.com
In above URI pattern, query parameter is “url=dineshonjava.com”, and you can get the url value with @QueryParam(“url”).
1. @QueryParam example
See a full example of using @QueryParam in JAX-RS.
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("/employee") public class EmployeeController { @GET @Path("/query") public Response getEmployees( @QueryParam("from") int from, @QueryParam("to") int to, @QueryParam("orderBy") List<String> orderBy) { return Response .status(200) .entity("getEmployees is called, from : " + from + ", to : " + to + ", orderBy" + orderBy.toString()).build(); } }
URI Pattern : “http://localhost:8181/sdnext/doj/employee/query?from=2300&to=3300&orderBy=age&orderBy=name”
getEmployees is called, from : 2300, to : 3300, orderBy[age, name]
2. Programmatic Query Parameter
Alternatively, you can get the query parameters grammatically, via “@Context UriInfo”. See equivalent version below :
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("/employee") public class EmployeeController { @GET @Path("/uriinfo") public Response getEmployees(@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("getEmployees is called, from : " + from + ", to : " + to + ", orderBy" + orderBy.toString()).build(); } }
URI Pattern : “http://localhost:8181/sdnext/doj/employee/uriinfo?from=2300&to=3300&orderBy=age&orderBy=name”
getEmployees is called, from : 2300, to : 3300, orderBy[age, name]
3. @DefaultValue example
@DefaultValue is good for optional parameter.
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("/employee") public class EmployeeController{ @GET @Path("/default") public Response getEmployee( @DefaultValue("1000") @QueryParam("from") int from, @DefaultValue("999")@QueryParam("to") int to, @DefaultValue("name") @QueryParam("orderBy") List<String> orderBy) { return Response .status(200) .entity("getEmployees is called, from : " + from + ", to : " + to + ", orderBy" + orderBy.toString()).build(); } }
URI Pattern : “http://localhost:8181/sdnext/doj/employee/default”
getEmployees is called, from : 1000, to : 999, orderBy[name]
Download SourceCode
JAX-RS @QueryParam example.zip
References
1. JAVA REST Web Services
2. Wikipedia for REST Web Service