什么是REST和WebService(SOAP)之间的区别,我看着Facebook的API,他们使用的HTTP标头和一些参数(可能XML或非)和XML,还有什么地方SOAP不完全相同,返回结果的HTTP标头+ XML的参数和返回头+ XML。
REST还需要一些认证令牌有什么地方SOAP使用HTTP会话这正是用于身份验证和其他信息同理。 所有我可以看到,SOAP是REST的一点高级的版本?
还是有什么其他性能方面的考虑? 阅读关于REST一味的客户端服务器通信的非常高的水平,但即使SOAP不完全相同。 任何人都可以点我在那里可以定义REST和SOAP的正确boundry。
我们用大量的SOAP的透明在.NET中,但我只是想知道是不是真的值得付出注意力放在REST且当前一切都运行流畅出色。
我知道,REST是一种体系结构和SOAP是一个协议,但我的问题是,在详细当前SOAP的ASP.NET web服务实现了REST架构?
SOAP是为XML在HTTP上发送/接收数据的协议。
一个典型的WebService的将是几个方法介绍如何调用它的WSDL。 还有如何这些结构应当没有真正的约定,所以你总是需要很多的API文档。
通常,这会是这样的(对于ASP.NET):
- HTTP
POST
到mysite.com/products.asmx/ListAllProducts -返回的XML产品名单 - HTTP
POST
到mysite.com/products.asmx/GetProduct -中发表的内容返回基于SOAP XML产品XML - HTTP
POST
到mysite.com/products.asmx/UpdateProduct -更改基于SOAP XML中发表的内容产品
REST更多的是一种约定的用于构造所有的方法:
- HTTP
GET
从mysite.com/products -返回XML或JSON列出所有产品 - HTTP
GET
从mysite.com/products/14 -返回XML或JSON用于产品14 - HTTP
POST
到mysite.com/products/14 -改变你的HTML形式发布什么产品14。 - HTTP
DELETE
来mysite.com/products/14 -删除产品14 - HTTP
PUT
到mysite.com/products -增加了一个新产品
所以REST更象你所期望的浏览器的URL。 以这种方式,更自然,并按照惯例是要容易理解得多。 所有的REST API以类似的方式工作,所以你不花只要学习每个系统的怪癖。
对我来说,一个服务实现使用RESTful方式赢取在使用SOAP RPC或在它的辅助功能方面之一。 在一个相对封闭的系统,其中模具可根据WSDL生成存根和联系,这是不是非常重要。 但是,如果你想创建可访问和提供给客户的广泛,那么的REST服务,统一和简化,使他们能够消费是一大利好,即你不需要沉重的RPC堆栈服务,只是使HTTP请求的能力。
不知道这完全回答你的问题,但如果像你说的,你有作品基于SOAP的系统(和你控制的客户端和服务器),那么我看不出有任何理由改变。 此外,一些服务自然会借给自己更多的基于RPC的访问,在这种情况下,SOAP接口将是更合适的。
在性能方面,一个或多个层将有效地从客户端和服务器的技术堆栈删除,如果你不使用SOAP,因此所有其他的事情都是平等的,这暴露了一个RESTful接口的服务将赢得那里。