我刚开始使用Java创建Web服务。 我想将XML-Request发布到Restful Webservice,而Response应该是一个修改过的XML。所以实际上只需更改请求的根元素,并且应该添加另一个元素。
请求:
<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 :(得分:0)
看来你正在使用Jersey来揭露其余的api。正如RedFive所提到的那样,有很多可用于在互联网上使用jersey(jax-rs实现)构建rest api的例子。我在学习球衣时做了一个小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(CREATED)http状态代码,它类似于同一件事。