SSG SSG - 1 year ago 59
Java Question

How to create a Restful web service with input parameters?

I am creating restful web service and i wanted to know how do we create a service with input parameters and also how to invoke it from a web browser.

For example

@Path("/todo")
public class TodoResource {
// This method is called if XMLis request
@PUT
@Produces( {MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Todo getXML() {
Todo todo = new Todo();
todo.setSummary("This is my first todo");
todo.setDescription("This is my first todo");
return todo;
}


and i can invoke it using
http://localhost:8088/JerseyJAXB/rest/todo

and I want to create a method like

@Path("/todo")
public class TodoResource {
// This method is called if XMLis request
@PUT
@Produces( {MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Todo getXML(String x, String y) {
Todo todo = new Todo();
todo.setSummary(x);
todo.setDescription(y);
return todo;
}


In case of soap based web services i would invoke it like this

http://localhost:8088/JerseyJAXB/rest/todo?x=abc&y=pqr

but I want to know how to invoke it using rest and also can I pass the parameters as I am doing in the above example when I use rest and jersey.

Answer Source

You can. Try something like this:

@Path("/todo/{varX}/{varY}")
@Produces({"application/xml", "application/json"})
public Todo whatEverNameYouLike(@PathParam("varX") String varX,
    @PathParam("varY") String varY) {
        Todo todo = new Todo();
        todo.setSummary(varX);
        todo.setDescription(varY);
        return todo;
}

Then call your service with this URL;
http://localhost:8088/JerseyJAXB/rest/todo/summary/description

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download