什么是WSDL,SOAP和REST?

时间:2010-09-21 21:35:08

标签: web-services rest soap wsdl

什么是WSDL?它与SOAP有什么关系? REST在哪里适合所有这些?

10 个答案:

答案 0 :(得分:154)

WSDL是一个描述Web服务的XML文档。它实际上代表Web服务描述语言。

SOAP是一种基于XML的协议,允许您在应用程序之间通过特定协议(例如,可以是HTTP或SMTP)交换信息。它代表简单对象访问协议,并使用XML作为其消息传递格式来传递信息。

REST是网络系统的架构风格,代表Representational State Transfer。它本身不是标准,但确实使用HTTP,URL,XML等标准。

答案 1 :(得分:77)

示例:简单来说,如果您有计算器的Web服务。

WSDL:WSDL讲述了您可以实现或向客户端公开的函数。例如:添加,删除,减去等。

SOAP:在使用SOAP的情况下,您实际执行的操作包括doDelete(),doSubtract(),doAdd()。所以SOAP和WSDL是苹果和橘子。我们不应该比较它们。它们都有自己不同的功能。

为什么我们使用SOAP和WSDL:用于平台无关的数据交换。

编辑:在正常的日常生活中的例子:

WSDL:当我们去餐馆时,我们会看到菜单项,这些是WSDL的。

代理类:现在看到菜单项后,我们构成了我们的思想(处理我们的想法):基本上我们基于WSDL文档制作代理类。

SOAP:然后,当我们基于菜单实际订购食物时:意味着我们使用代理类来调用使用SOAP完成的服务方法。 :)

答案 2 :(得分:33)

每次有人提到SOAP / WSDL时,我都会想到在xml中定义的对象和类......

  

"您使用SOAP的方式与任何PHP类相同。但是,在这种情况下,该类不存在于本地应用程序文件系统中,而是存在于通过http访问的远程站点上。"   ...   "如果我们考虑将SOAP服务用作另一个PHP类,那么WSDL文档就是所有可用类方法和属性的列表。 "

     

http://www.doublehops.com/2009/07/07/quick-tutorial-on-getting-started-with-soap-in-php/comment-page-1/

..每当有人谈论REST时,我都会想到HTTP的命令(请求方法),如POST,GET和DELETE

答案 3 :(得分:13)

SOAP - > SOAP(简单对象访问协议)是为机器到机器交互创建的应用程序级协议。协议定义了标准规则。使用特定协议的所有各方都应遵守协议规则。与TCP一样,它在传输层展开,SOAP协议将被Application层理解(任何支持SOAP的应用程序 - Axis2,.Net)。

WSDL - > SOAP消息由SoapEnevelope-> SoapHeader和SoapBody组成。它没有定义什么是消息格式?它支持的所有传输(HTTP,JMS)是什么?没有此信息,任何想要使用特定Web服务的客户端都很难构造SOAP消息。即使他们这样做,他们也不会确定,它会一直在工作。 WSDL就是救援。 WSDL(Web服务描述语言)定义SOAP消息的操作,消息格式和传输细节。

REST - > REST(Representational state transfer)基于Transport。与针对操作的SOAP不同,REST更关注资源。 REST使用URL定位资源(例如-http:// {serverAddress} / employees / employeeNumber / 12345),这取决于操作的传输协议(使用HTTP-GET,POST,PUT,DELETE等)要对资源进行处理。 REST服务根据URL定位资源,并根据传输操作动词执行操作。它更多的是基于建筑风格和惯例。

答案 4 :(得分:12)

你不会“简单地”理解复杂的东西。

WSDL是一种基于XML的语言,用于描述Web服务。它描述了服务使用的消息,操作和网络传输信息。这些Web服务通常使用SOAP,但可能使用其他协议。

WSDL可由程序读取,因此可用于生成调用Web服务所需的全部或部分客户端代码。这就是将基于SOAP的Web服务称为“自我描述”的意思。

REST根本与WSDL无关。

答案 5 :(得分:10)

SOAP代表简单(原文如此)对象访问协议。它旨在通过HTTP发送XML来对远程对象执行远程过程调用。

WSDL是Web服务描述语言。以“.wsdl”结尾到端点的请求将生成描述用户可以预期的请求和响应的XML消息。它描述了服务与合同之间的契约。客户端。

REST使用HTTP向服务发送消息。

SOAP是一个规范,REST是一种风格。

答案 6 :(得分:5)

Wikipedia说:“Web服务描述语言是一种基于XML的语言,它提供了一种描述Web服务的模型”。换句话说,WSDL是一个Web服务,因为javadoc是一个java库。

但是,WSDL真正的好处是,软件可以使用WSDL生成客户端和服务器。

答案 7 :(得分:3)

这里也可以找到一些明确的解释(对于SOAP和WSDL)。

Difference between a SOAP message and a WSDL?

答案 8 :(得分:3)

REST在编码方面是轻量级的,对于轻量级设备(即非严格的API)更有用。

REST与格式无关。 XML,HTML,JSON都可以使用。

REST为2点消息传输提供了能力(因为REST代表REpresentational State Transfer,这并不奇怪),其中WSDL / SOAP交互是多点消息交互。

REST不需要XML消息的新扩展,在WSDL / SOAP中就是这种情况。

WSDL / SOAP使用多个传输协议,REST仅依赖于HTTP。因此,WSDL / SOAP可以像RESTful一样使用,但是简单的请求可能过于复杂/过重。

一个简单的类比:REST就像一个motoboy,可以轻松快捷地提供食物。 XML扩展的WSDL / SOAP更像是UPS交付,更加结构化和严肃的东西,但需要付出代价。

答案 9 :(得分:0)

WSDL文档描述了一个Web服务。它使用以下主要元素指定服务的位置和服务方法:  在webservice中使用的数据类型  每个操作的数据元素  描述可以执行的操作和包含的消息

SOAP(简单对象访问协议)是一种消息传递协议,允许在不同操作系统上运行的程序使用http和xml进行通信。