Boo*_*oks 11 rest soap web-services
如果我需要一个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如何更难使用.
我错过了什么吗?
REST的一个主要好处是,您需要调用和使用它是浏览器和HTTP堆栈 - 几乎每个设备和机器都有.因此,如果易用性和覆盖范围是您的主要目标 - 使用REST.
SOAP的一个主要好处是你有一个WSDL服务描述,你几乎可以自动发现服务,并从该服务描述生成一个可用的客户端代理(生成服务调用,方法的必要数据类型等等)向前).
因此,如果可发现性和严格的正式服务描述对您来说更重要,请使用SOAP(缺点是您需要一个成熟的SOAP客户端来调用您的服务 - 您的Web浏览器是不够的).
SOAP并不难使用 - 但它在可用性方面并不那么"普遍" - 任何浏览器都可以调用REST服务并获得答案 - 但是它需要解析并解释该响应.SOAP获得了很好的数据结构,但是你需要一个SOAP客户端.
归档时间: |
|
查看次数: |
18066 次 |
最近记录: |