@POST в веб-сервисе RESTful

Я пытался понять @POST в веб-сервисе RESTful, используя Джерси. я прошел http://www.vogella.com/articles/REST/article.html для то же самое и смог получить некоторую информацию о @POST, но чувствовал себя запутанным и комковатым. Может кто-нибудь объяснить @POST простым примером или поделиться ссылками на то же самое.

Реализация @POST через объекты TODO в приведенной выше ссылке была хорошей, но я хотел бы изучить @POST на другом простом примере, чтобы я мог продолжить разработку собственных сложных примеров @POST.

Помощь будет ощутимой, Спасибо.

27 голосов | спросил javu.infy 4 TueEurope/Moscow2012-12-04T17:14:24+04:00Europe/Moscow12bEurope/MoscowTue, 04 Dec 2012 17:14:24 +0400 2012, 17:14:24

2 ответа


0

Ниже приведен пример, который может вам помочь.

package jersey.rest.test;

import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.HEAD;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

@Path("/hello")
public class SimpleService {
    @GET
    @Path("/{param}")
    public Response getMsg(@PathParam("param") String msg) {
        String output = "Get:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }

    @POST
    @Path("/{param}")
    public Response postMsg(@PathParam("param") String msg) {
        String output = "POST:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }

    @POST
    @Path("/post")
    //@Consumes(MediaType.TEXT_XML)
    public Response postStrMsg( String msg) {
        String output = "POST:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }

    @PUT
    @Path("/{param}")
    public Response putMsg(@PathParam("param") String msg) {
        String output = "PUT: Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }

    @DELETE
    @Path("/{param}")
    public Response deleteMsg(@PathParam("param") String msg) {
        String output = "DELETE:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }

    @HEAD
    @Path("/{param}")
    public Response headMsg(@PathParam("param") String msg) {
        String output = "HEAD:Jersey say : " + msg;
        return Response.status(200).entity(output).build();
    }
}

для тестирования вы можете использовать любой инструмент, например RestClient (http://code.google.com/p/rest-client/)

ответил dgm 11 TueEurope/Moscow2012-12-11T12:59:33+04:00Europe/Moscow12bEurope/MoscowTue, 11 Dec 2012 12:59:33 +0400 2012, 12:59:33
0

REST webservice: (http: //localhost: 8080 /your-app /rest /data /post)

package com.yourorg.rest;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.Response;

    @Path("/data")
public class JSONService {

    @POST
    @Path("/post")
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createDataInJSON(String data) { 

        String result = "Data post: "+data;

        return Response.status(201).entity(result).build(); 
    }

Клиент отправляет сообщение:

package com.yourorg.client;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class JerseyClientPost {

  public static void main(String[] args) {

    try {

        Client client = Client.create();

        WebResource webResource = client.resource("http://localhost:8080/your-app/rest/data/post");

        String input = "{\"message\":\"Hello\"}";

        ClientResponse response = webResource.type("application/json")
           .post(ClientResponse.class, input);

        if (response.getStatus() != 201) {
            throw new RuntimeException("Failed : HTTP error code : "
                 + response.getStatus());
        }

        System.out.println("Output from Server .... \n");
        String output = response.getEntity(String.class);
        System.out.println(output);

      } catch (Exception e) {

        e.printStackTrace();

      }

    }
}
ответил 4 TueEurope/Moscow2012-12-04T21:34:30+04:00Europe/Moscow12bEurope/MoscowTue, 04 Dec 2012 21:34:30 +0400 2012, 21:34:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132