REST和WebService ( SOAP )之间的区别是什么?我研究了facebook api,它们使用HTTP头和一些参数(可能是xml或非),并以xml格式返回结果,而其他SOAP的功能完全相同,即HTTP header+ xml参数和返回headers + xml。
REST还需要一些经过身份验证的令牌,而else SOAP使用http session,这与用于身份验证和其他信息的令牌完全相同。我所能看到的就是SOAP是REST的一个小高级版本?
或者,是否还有其他性能方面的考虑?阅读有关REST的文章只是谈到了非常高级别的客户端-服务器通信,但即使是SOAP也做了完全相同的事情。谁能告诉我它可以在哪里定义REST和SOAP的正确边界。
我们在.net中透明地使用了很多SOAP,然而我只想知道,在目前一切都运行得非常顺利的情况下,是否真的值得注意休息。
我知道REST是一种架构,SOAP是一种协议,但我的问题是,目前SOAP的ASP.NET WebService实现是否具有REST架构?
发布于 2009-09-18 00:27:13
SOAP是一种用于通过HTTP以XML形式发送/接收数据的协议。
典型的WebService是一些描述如何调用它的方法。对于这些应该如何构造,没有真正的约定,因此您总是需要大量的API文档。
通常情况下,这类似于(对于ASP.NET):
POST
to mysite.com/products.asmx/ListAllProducts -将XML产品列表POST
返回到mysite.com/products.asmx/GetProduct -将发布内容中基于SOAP XML的产品XML返回到mysite.com/products.asmx/ POST
to mysite.com/products.asmx/UpdateProduct -根据发布内容中的SOAP XML更改产品<代码>H29F210REST更像是一种组织所有方法的约定:
来自mysite.com/products的
GET
-从mysite.com/products/14返回列出所有产品产品的XML或JSON -将产品14的XML或JSON POST
返回到mysite.com/products/14 -将产品14更改为您在HTML表单中发布的内容。<代码>F227
因此,REST的工作方式更符合您对浏览器URL的期望。在这种方式下,它更自然,作为一种约定更容易理解。所有REST都以类似的方式工作,因此您不必花费太多时间来了解每个系统的怪癖。
发布于 2009-09-18 00:38:14
对我来说,使用RESTful方法实现的服务在可访问性方面胜过使用SOAP或RPC的服务。在相对封闭的系统中,可以使用工具基于WSDL生成存根和连接,这并不是特别重要。然而,如果你想创建广泛的客户端可访问和可用的服务,那么REST服务的统一性和使用它们的简易性是一个很大的优点,即你不需要沉重的RPC堆栈,只需要发出HTTP请求的能力。
我不确定这是否完全回答了您的问题,但如果,正如您所说,您有一个基于SOAP的系统(并且您控制客户端和服务器),那么我看不到任何更改的理由。此外,一些服务自然会更适合基于RPC的访问,在这种情况下,SOAP接口将更合适。
在性能方面,如果您不使用SOAP,那么将有效地从客户端和服务器技术堆栈中删除一个或多个层,因此,在所有其他条件相同的情况下,公开RESTful接口的服务将在那里获胜。
https://stackoverflow.com/questions/1443160
复制相似问题