【问题标题】:HTTP + XML or SOAP for creating Web Services用于创建 Web 服务的 HTTP + XML 或 SOAP
【发布时间】:2015-10-20 08:27:14
【问题描述】:

我创建了一个 Web 服务,其中涉及接受 URL 中的某些参数、验证并使用 JAXB xml 库向客户端返回 XML 响应。最近我遇到了 JAX-WS 框架,它使用 SOAP over HTTP 向/从客户端传输请求/响应。通过使用简单的 servlet + 连接池并通过 HTTP 提供 XML 响应,我是否会失去一些东西?客户端将访问通过一些未知系统创建的 URL。

当简单的 HTTP + XML 或 JSON 可以解决问题时,使用 REST 或 SOAP 协议有什么好处。

【问题讨论】:

标签: java xml web-services soap jaxb


【解决方案1】:

听起来您对所服务的内容没有任何限制,这使您有很多选择。有很多角度可以解决这个问题,我只是在下面列出了一些最明显的实际考虑因素,并省略了任何架构讨论。

SOAP 通常(但不总是)用于企业集成——但它有很多缺点——尤其是冗长。我的建议是不要使用 SOAP,除非你真的别无选择。

XML 还是 JSON ?您的客户更喜欢使用 JSON 还是 XML?如果您只是发布服务而不使用它,那么我会使用 JSON,因为它现在已成为 Web 服务的一种非常流行的消息格式。

如果您是唯一一个使用响应的人,那么您需要考虑您的客户端技术/框架可能更愿意解析什么以及消息有效负载可能有多大。如果它很丰富(嵌套对象和属性的负载),那么 XML 模式可能适合,但如果消息非常大,则考虑 JSON 占用空间可能小于 XML 占用空间。

您的方法中没有遗漏任何东西。选择最简单的选项 - 这取决于您使用的框架/库以及开发人员的技能。如果 servlet 对您来说似乎是最直接的,那就去吧。如果您的数据已经在 XML 中,那么这似乎是可行的方法,但如果不是,我会考虑首先发布 JSON 格式。如果您不确定如何操作,请先查看Jackson


更新:

如果您仍然不确定要走哪条路,那么只需提供 JSON。 此外,您使用/发布的消息格式不应决定您如何实现应用程序设计 - 我的意思是,是否使用 servlet 的问题并不会真正影响使用哪种消息格式,除非您打算使用框架它将您与特定方法联系起来,例如。 Play Framework 将非常容易地允许您从控制器(而不是 Servlet)提供 JSON,因此如果您使用此框架 - 例如 - 您不想使用 servlet 而您会使用 JSON,因为这是最简单的方法,因为框架已经提供的开箱即用支持。

【讨论】:

  • 那么可以说使用SOAP没有优势吗,应该只在客户端有使用SOAP或其他特定协议的限制时使用。
  • 嗯,这实际上是一场我们不想参与的大辩论。 SOAP 仍然有它的用途,它是一种被广泛采用的标准——主要用于企业级中间件集成。我想说的是,除非您被限制使用 SOAP,否则请避开它,因为实现可能比仅仅编组 XML 或 JSON 更复杂。
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 2023-03-06
  • 1970-01-01
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多