Implementing RESTful web service with two parameters?

java, jersey-1.0, rest, web-services

Solution

You have two choices - you can put them both in the path or you can have one as a query parameter.

i.e. do you want it to look like:

/{id}/{name}

or

/{id}?name={name}

For the first one just do:

@GET
@Path("/{id}/{name}")
@Produces({MediaType.APPLICATION_XML})
public Person fetchPerson(
          @PathParam("id") Integer id,
          @PathParam("name") String name) {
    return personService.fetchPerson(id);
}

For the second one just add the name as a `RequestParam`. You can mix `PathParam`s and `RequestParam`s.

Problem

I am writing Jersey RESTful web services. I have below two web methods. ``` @Path("/persons") public class PersonWS { private final static Logger logger = LoggerFactory.getLogger(PersonWS.class); @Autowired private PersonService personService; @GET @Path("/{id}") @Produces({MediaType.APPLICATION_XML}) public Person fetchPerson(@PathParam("id") Integer id) { return personService.fetchPerson(id); } } ``` Now i need to write one more web method which takes two parameters one is id and one more is name. It should be as below. ``` public Person fetchPerson(String id, String name){ } ``` How can i write a web method for above method? Thanks!

Original source