为新的Api使用SOAP或REST
(不是重复的我应该使用rest还是soap。这个问题只有1个答案,除了开销外,没有提供很多参数)。
在将此问题标记为重复之前,请考虑我正在寻找在我之前作出选择的人的答案,并根据他们自己的经验解释他们的原因。 简单说明“开销”或“更复杂”的答案不适合该配置文件。
现在提出这个问题:
一段时间后,我开始使用Soap设置一个新的API(PHP / Zend_Soap_Server,Zend_Soap_Autodiscover)。 尽管我已经知道如何使用肥皂,但复杂性让我怀疑这是否是未来维护的好选择。
我听说过REST,但没有任何经验。
所以问题是:REST vs SOAP的优缺点是什么?当创建一个全新的api(相当复杂的api,几十种使用ssl的方法,必须具有相当的安全性等),REST或SOAP时,你有什么建议?
如果你认为你的答案在REST和SOAP之间的平衡中是悬而未决的,并且一个特定的依赖或者特性会导致这个规模下降,那么一定要问你需要知道的任何东西。 我会尽快回答。
api功能的简短列表:
api的地方基本如下:
互联网 - >网站 - > [内部网络] - > API /后端 - >数据库
谢谢你的时间提前..
这当然是一个非常有争议的话题,但与此同时,由于多种原因,大多数新服务都是REST。 我不会介绍两者之间的差异(正如有据可查),但更多的原因是我认为您将在今天(2012年)使用REST创建新服务:
如果您环顾互联网上的一些主要API(例如Google,Facebook,Twitter等),您会发现很多REST,以及很少或没有SOAP。 那些拥有SOAP接口的用户会弃用或完全放弃它们,因为没有理由继续使用它。
实际上,许多大型服务正在向前迈进一大步,只是为他们的REST服务提供JSON格式,而不是XML,或者两者兼而有之,因为像SOAP之类的REST一样,JSON在大小和简单性方面有很多优势继续支持XML没有多大意义。
与SOAP相比,REST几乎没有缺点。
关于我能想到的唯一的实际考虑是从客户的角度来看。 使用SOAP(由于WSDL,假设您生成了一个),您可以在服务中指定一个支持SOAP的IDE(如VisualStudio),并且它将基于远程服务生成本机客户端代理API。 这对于快速启动和运行来说有点不错,但有其自身的一些缺点:它迫使您使用服务中定义的对象(而使用REST,只要数据映射可以使用自己的对象定义),并且根据远程服务如何处理版本控制(或不是)以及如何使用它,您可能最终不得不更新应用程序的主要块,因为命名更改很简单。
从服务器的角度来看,我看不出任何技术上的好处,无论选择SOAP还是REST。
TL; DR:SOAP不一定是坏的,只是REST更好。
链接地址: http://www.djcxy.com/p/71385.html