REST是一种更好的Web服务方法还是SOAP?或者它们是针对不同问题的不同工具?或者这是一个细致入微的问题 - 也就是说,在某些领域比另一个稍微好一点,等等?
赏金编辑:
现在,差不多三年后,我想再次提出这个问题 - 提供奖励以鼓励深入回答.我特别感谢有关这些概念及其与PHP-universe和现代高端Web应用程序的关系的信息.
跟进此帖子的问题:
目前我对SOAP和RESTful Services之间的差异略有了解.
我的问题是我何时应该使用SOAP,何时应该使用RESTful; 在性能/速度或请求处理方面,哪一个"更好"?
我正在RESTful(java)中第一次实现,我想要了解更多; 我以前处理过SOAP.
有关:
在决定是否使用SOAP或REST实现Web服务时(我以RESTful方式表示HTTP/XML)我应该注意什么以及我应该考虑什么?我认为这不是一个适合所有的东西,所以我该如何选择使用哪个.
我有一个Web服务,它接受JSON参数并具有方法的特定URL,例如:
http://IP:PORT/API/getAllData?p={JSON}
Run Code Online (Sandbox Code Playgroud)
这绝对不是REST,因为它不是无状态的.它需要考虑cookie并拥有自己的会话.
是RPC吗?RPC和REST有什么区别?
我正在使用AWS S3 REST API,在解决了一些令人烦恼的签名问题之后,它似乎有效.但是,当我使用正确的REST动词创建资源时POST,我得到了405 method not allowed.相同的请求与方法一起工作PUT并创建资源.
我做错了什么,或者AWS S3 REST API不完全符合REST标准吗?
使用JSON接收和发送数据是通过简单的HTTP请求完成的.而在SOAP中,我们需要处理很多事情.解析XML有时也很难.甚至Facebook在Graph API中使用JSON.我仍然想知道为什么还应该使用SOAP?是否有任何理由或领域SOAP仍然是更好的选择?(尽管有数据格式)
此外,在简单的客户端 - 服务器应用程序(如与服务器连接的移动应用程序)中,SOAP可以提供优于JSON的任何优势吗?
如果有人能够考虑我提供的信息(如果有的话),可以在JSON和SOAP之间争取主要/突出的差异,我将非常感激.
我现在正在阅读"实践中的休息"一书.我无法理解以下术语超媒体,超媒体格式,超媒体控件,域应用程序协议.作者建议需要特定于域的超媒体格式.我很难理解那些.我搜索了这些条款,但无法找到正确的答案.任何人都可以解释这些术语以及为什么我们需要特定于域的超媒体格式而不是application/xml?
我没有任何参考可以在这里展示我的研究(因为没有链接到这一点),甚至谷歌也没有确切的答案.每个人都说网络服务是有状态的,但这令人困惑.原则上,我相信,SOAP是有状态的,REST是无状态的.那么,为什么/如何SOAP是有状态的?
我在MVC和sql server中创建一个新的电子商务应用程序作为数据库.我想使用相同的实体框架.我对选择数据访问层感到困惑.我应该在WCF与Web API和Web服务之间使用哪一个.有可能在将来我们可能需要Android和IOS应用程序.我认为Web api将是最好的选择.
我试图找到web api和WCF之间的区别,我发现了什么.新的ASP.NET Web API是以前的WCF Web API项目的延续(尽管一些概念已经改变).
WCF最初是为了启用基于SOAP的服务而创建的.对于更简单的RESTful或RPCish服务(想想像jQuery这样的客户端),ASP.NET Web API应该是不错的选择.有数千个链接告诉Rest,TCP,FTP,soap,Http. 但没有我找到答案的地方.我仍然困惑哪一个会解决我的问题.如果我选择Web api还有一件事,实体框架可以与Web api集成.我是dot net的新手.任何帮助都会非常有帮助.
编辑: @win感谢您的帮助.我想知道,如何决定我应该选择哪一个,RESTFull(Web api)或WCF(Soap).应用中的哪些因素决定使用哪一个因素.