gpt4 book ai didi

java - 服务于 JSON/XML/等的 Web 服务。 react

转载 作者:数据小太阳 更新时间:2023-10-29 02:56:53 31 4
gpt4 key购买 nike

在设计一个应该返回相同数据的不同表示(例如 JSON、XML)的 Web 服务时,您认为什么是最好的方法。

要求是将业务逻辑与编写实际 XML/JSON 响应的部分完全分离,具体取决于 HTTP 请求中收到的“接受” header 。

我认为这是许多 Web 服务都存在的常见问题。有什么技巧/设计模式/维基/项目可以帮助我吗?

最佳答案

第一个问题是您想使用哪种 HTTP 协议(protocol):REST 还是 SOAP?

当使用 REST 时,我会创建一个服务,为每个表示使用不同的消费者方法。在这个 REST 服务的背后,您可以让您的真实服务和消费者方法调用完全相同的业务逻辑。你可以根据你想要返回的表示修改你的路径。

例如:

@GET
@Path("/json/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Response readAsJson(@PathParam("id") String id) throws JAXBException {

final Object obj = dao.get(id);

if (obj == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
return Response.ok(obj).build();
}

@GET
@Path("/xml/{id}")
@Produces(MediaType.APPLICATION_XML)
public Response readAsXml(@PathParam("id") String id) throws JAXBException {

final Object obj = dao.get(id);

if (obj == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}
return Response.ok(obj).build();
}

关于java - 服务于 JSON/XML/等的 Web 服务。 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25847959/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com