@PathParam

A URI path template, in general, has a URI part pointing to the resource. It can also take the path variables embedded in the syntax; this facility is used by the clients to pass parameters to the REST APIs, as appropriate. The @javax.ws.rs.PathParam annotation injects (or binds) the value of the matching path parameter present in the URI path template into a class field, a resource class bean property (the getter method for accessing the attribute), or a method parameter. Typically, this annotation is used in conjunction with the HTTP method type annotations, such as @GET, @POST, @PUT, and @DELETE.

The following example illustrates the use of the @PathParam annotation to read the value of the path parameter, id, into the deptId method parameter. The URI path template for this example looks like /departments/{id}:

//Other imports removed for brevity 
javax.ws.rs.PathParam 
 
@Path("departments") 
public class DepartmentService { 
   @DELETE 
   @Path("{id}") 
   public void removeDepartment(@PathParam("id") Short deptId) { 
      removeDepartmentEntity(deptId); 
   } 
   //Other methods removed for brevity 
} 

The REST API call to remove the department resource identified by id=10 looks like DELETE /departments/10 HTTP/1.1.

We can also use multiple variables in a URI path template. For example, we can have the URI path template embedding the path variables to query a list of departments from a specific city and country, which may look like /departments/{country}/{city}. The following code snippet illustrates the use of @PathParam to extract variable values from the preceding URI path template:

@Produces(MediaType.APPLICATION_JSON) 
@Path("{country}/{city} ")   
public List<Department> findAllDepartments(  
  @PathParam("country") 
String countyCode,   @PathParam("city") String cityCode) { 
  //Find all departments from the data store for a country  
  //and city 
  List<Department> departments =  
    findAllMatchingDepartmentEntities(countyCode,  
      cityCode ); 
   return departments; 
} 
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.140.195.225