SOAP 还是 REST?具体项目

Posted

技术标签:

【中文标题】SOAP 还是 REST?具体项目【英文标题】:SOAP or REST? Specific Project 【发布时间】:2011-05-16 09:04:21 【问题描述】:

我正在尝试确定是否应该将 SOAP 或 REST 用于特定项目。我将解释这个项目是什么或需要做什么,我希望你们中的一些人能给我有用的信息,说明为什么我应该使用一个而不是另一个。

我需要处理的项目完全基于 Web 服务。每个前端实现都需要访问 Web 服务以获取所需的所有信息。但除此之外,我们还有一个 Indesign 插件,可以与这些网络服务对话以上传文档并检查文档的验证等。

因此,简而言之,我需要通过前端 Web gui 和 indesign 插件访问 Web 服务。后者让我想知道我应该使用 REST 还是 SOAP。

非常感谢您阅读本文并发布您的反馈。

【问题讨论】:

【参考方案1】:

我发现这篇关于 SOAP 与 REST 优缺点的非常棒的文章:http://geeknizer.com/rest-vs-soap-using-http-choosing-the-right-webservice-protocol/

还有我自己的拙见: 我不喜欢 SOAP,我从来没有。当时它很棒,但它从来没有感觉“正确”。如果您曾经尝试阅读这些巨大的重载 XML 文档之一并将其与 REST 输出(大多数情况下是 JSON)进行比较,您就会明白我的意思。恕我直言,感觉“更好”。 一个问题是您必须更好地记录您的 REST API,但只要不是对所有人开放,这应该不是什么大问题。 特别是如果您使用 Web 服务处理所有数据,我认为您应该使用更轻且带宽消耗更少的选项:REST。 此外,REST 是目前每个人都在使用的新技术……;)

关于您的 indesign 插件:您应该能够包含您想要的任何库,所以这应该不是问题。

【讨论】:

+1 用于 REST。我讨厌肥皂和进行简单通话所需的所有额外步骤 REST 不是“主要是 JSON”。由于带宽使用率较低而选择 REST 就像购买黑色的宝马一样。而且 REST 并不新鲜,它已经有 10 年历史了。 REST 是旧的,当然,但当您谈论它作为 Web 服务的使用时,它是新的。如果它不是通常 JSON - 那是什么?我知道您可以按照自己的方式指定它,但在大多数流行的 API 中,我将 JSON 视为输出。 [我明白了,也许我在那里用错了词] 那是一篇不错的文章,您也已链接。我几乎总是更喜欢 REST 而不是 SOAP,这主要是基于我过去的经验——它们总是使用 REST 更好、更流畅。我认为 REST 通常也让其他人更容易连接到您的 API。在这种情况下,唯一将我吸引到 SOAP 的是通过该机制发布附件的要求。对于复杂的事务,有时 SOAP 强制执行的附加结构会为应用程序提供更稳固的基础结构。

以上是关于SOAP 还是 REST?具体项目的主要内容,如果未能解决你的问题,请参考以下文章

WCF Rest WebFaultException 总是返回 202

REST SOAP Thrift 对比

服务端REST与SOAP的探讨(转)

SOAP Web 服务介绍

如何区分 SOAP 与 REST 请求?

我可以使用现有的SOAP API会话验证Salesforce REST API吗?