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