daisy
daisy

Reputation: 1

How to get "POST" method to show with Rest Web Services

I am new to Rest web services, and I am trying to figure out what I am doing wrong. When I run on server with the address:

localhost:8080/rest/webresources/error

Then the output message I want (the error message) shows up.

But when I run on the server to show input values using:

localhost:8080/rest/webresources/inputvalues

it doesn't. What am I doing wrong? I feel like my path is wrong, and I tried different combinations of it, but it still gives me a 404 not found error.

@Path("error")
public class RestWeb {
@GET    
@Produces(MediaType.TEXT_HTML)
public String getText() {
    return "<body> Error. Invalid data. </body>";
}

@POST
@Produces(MediaType.TEXT_HTML)
@Path("/inputvalues")
public String getParamText(@FormParam("travel") String travel,
        @FormParam("start") String start,
        @FormParam("duration") String end, 
        @FormParam("party") String people) {
    String returnString = processInput(travel, start, end, people);
    return "<body> " + returnString + " </body>";
}

Upvotes: 0

Views: 128

Answers (1)

Shivam Puri
Shivam Puri

Reputation: 1666

Assuming that the REST services were correctly written and deployed, the problem here is the lack of understanding of the way a POST Rest Service is expected to behave as.

From the comment section above it is clear that you are trying to call a POST API directly from a browser. That can be done fine for a GET type of a service but won't work for a POST type service.


Reason
The REST API uses several HTTP methods to perform various actions on REST resources. Any REST API that uses a GET call can be invoked using a web browser.

A post service however expects a certain set of input parameters (Here in your case, form params "travel", "start", "duration" and "party" are required) You cannot call POST API's directly by simple typing the path of the Service URL in the browser.

You can use tools like POSTMAN, RESTer and a lot of such software available on the web, with extensive tutorials on how to use these for POST type REST API calls.

Upvotes: 1

Related Questions