/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
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…