2017-02-14 19 views
0

Я нахожусь в начале создания веб-службы с Java. Я хочу, чтобы POST XML-запрос в Restful Webservice, и ответ должен быть измененным XML. Поэтому на самом деле нужно только изменить Корневой элемент запроса, и ему нужно добавить еще один элемент.Как изменить запрос POST-сообщения в Java?

Запрос:

<Request> 
    <name>name</name> 
</Request> 

Ответ:

<Response> 
    <name>name</name> 
    <status>created</status> 
</Response> 

В настоящее время я только возвращение запрос. Каков наилучший/простой способ изменить запрос? Могу ли я сделать это с JAXB?

public class Resource { 
    @POST 
    @Produces 
    @Consumes 
    public Request request(Request r) { 
     return r; 
    } 
} 

ответ

0

Кажется, вы используете Джерси, чтобы разоблачить остальную часть api. Как упоминалось в RedFive, существует множество примеров для создания rest api с использованием jersey (реализация jax-rs) в Интернете. Я занимался небольшим POC, изучая трикотаж. Вы можете найти пример реализации POST API here. Я передаю запрос bean (как объект класса Person). Запрос json/xml не привязан к объекту Person. Вместо возврата объекта Запрос тип, вы должны вернуть Ответ объект. Надеюсь, этот пример поможет вам в изучении трикотажа.

@POST 
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
public Response makeRequest(Request req) { 
    Response res = new Response(); 
    res.setName(req.getName()); 
    return Response.entity(res).status(Response.Status.CREATED).build(); 
} 

Одна вещь, я хочу указать, что вы не можете вернуть статус в тело ответа. Вы возвращаете 201 (СОЗДАННЫЙ) код статуса http, который напоминает одно и то же.