WSDL vs REST优点和缺点

有关:

为什么会使用REST而不是Web服务?

在决定是否使用SOAP或REST实现Web服务时(我的意思是以REST方式使用HTTP / XML)我应该注意什么以及我应该怎么想? 我认为这不是一个适合所有的事情,所以我该如何选择使用哪一种。


这两个协议在现实世界中有着非常不同的用途。

SOAP(使用WSDL)是一个以文档传递为中心的重量级XML标准。 这样做的好处是您的请求和响应可以很好地构建,甚至可以使用DTD。 缺点是它是XML,而且非常冗长。 但是,如果双方需要签订严格的合同(比如说银行间通信),这就很好。 SOAP还允许您在文档上对WS-Security进行分层。 SOAP通常是传输不可知的,这意味着您不一定需要使用HTTP。

REST非常轻便,并且依靠HTTP标准来完成它的工作。 获得有用的Web服务并快速运行是非常好的。 如果你不需要严格的API定义,这是要走的路。 大多数Web服务都属于这个类别。 您可以对您的API进行版本化,以便对使用旧版本的人(只要它们指定版本)API的更新不会破坏它。 REST本质上需要HTTP,并且是格式不可知的(意味着你可以使用XML,JSON,HTML等等)。

通常我使用REST,因为我不需要花哨的WS- *功能。 如果您希望计算机使用WSDL来理解您的Web服务,那么SOAP很好。 REST规范通常只有人类可读。


以下链接提供了有关WSDL和REST的有用信息,包括优点和缺点

几个关键点是

1)SOAP是为分布式计算环境而设计的,其中REST专为点对点环境而设计。

2)WADL可用于定义REST服务的接口。

http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest
http://ajaxonomy.com/2008/xml/web-services-part-2-wsdl-and-wadl


关于WSDL(意思是“SOAP”)是“重量级”。 沉重的事情如何? 如果工具集正在为您完成所有“繁重工作”,那么为什么这很重要?

我从来没有需要使用复杂的REST API。 当我这样做时,我希望我希望有一个WSDL,我的工具很乐意将它转换成一组代理类,以便我可以调用看起来像是方法的东西。 相反,我怀疑为了消费一个不平凡的基于REST的API,需要手动编写大量的“轻量级”代码。

即使这一切都完成了,你仍然会将人类可读的文档翻译成代码,所有伴随的风险是人类认为它是错误的。 由于WSDL是服务的机器可读描述,因此“错误地阅读”就更困难了。


请注意:自从这篇文章之后,我有机会使用适度复杂的REST服务。 实际上,我确实希望有一个WSDL或同等的东西,而且我确实需要手动编写大量的代码。 实际上,大部分开发时间花在消除所有代码重复的“手动”调用不同服务操作的代码上。

链接地址: http://www.djcxy.com/p/71463.html

上一篇: WSDL vs REST Pros and Cons

下一篇: "Socket hang up" error during request