REST是一种更好的Web服务方法还是SOAP?或者它们是针对不同问题的不同工具?或者这是一个细致入微的问题 - 也就是说,在某些领域比另一个稍微好一点,等等?
赏金编辑:
现在,差不多三年后,我想再次提出这个问题 - 提供奖励以鼓励深入回答.我特别感谢有关这些概念及其与PHP-universe和现代高端Web应用程序的关系的信息.
如果我需要一个Web服务来回传递一个复杂的对象,我是否应该选择SOAP over REST?以下是可能的SOAP消息的示例:
<soap:Envelope>
<soap:Header>
<Credentials>
<User>Joe</User>
<Password>abc123</Password>
</Credentials>
</soap:Header>
<soap:Body>
<MyComplexBusinessObject>
<Search>
<First>Joe</First>
<Last>Smith</Last>
</Search>
...
...
</MyComplexBusinessObject>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
使用REST,我会要求客户端POST以下xml并使用基本身份验证进行身份验证:
<MyComplexBusinessObject>
<Search>
<First>Joe</First>
<Last>Smith</Last>
</Search>
...
...
</MyComplexBusinessObject>
Run Code Online (Sandbox Code Playgroud)
SOAP消息稍微复杂一些,但不是很多.它们仍然是XML,但SOAP带有WSDL,大多数编程环境都会为您生成代理类.但是,我与之交谈的大多数人都说我应该使用REST,因为它更容易使用.但我不知道SOAP如何更难使用.
我错过了什么吗?