Web services 什么是WSDL、SOAP和REST?

Web services 什么是WSDL、SOAP和REST?,web-services,rest,soap,wsdl,Web Services,Rest,Soap,Wsdl,是什么?它与什么有关?SOAP代表简单(sic)对象访问协议。它是一种通过HTTP发送XML来对远程对象进行远程过程调用的方法 WSDL是Web服务描述语言。对端点的以“.wsdl”结尾的请求将生成一条XML消息,该消息描述用户可以预期的请求和响应。它描述了服务和客户之间的合同 REST使用HTTP向服务发送消息 SOAP是一种规范,REST是一种风格。您不会“简单地”理解复杂的东西 WSDL是一种用于描述web服务的基于XML的语言。它描述服务使用的消息、操作和网络传输信息。这些web服务通常

是什么?它与什么有关?SOAP代表简单(sic)对象访问协议。它是一种通过HTTP发送XML来对远程对象进行远程过程调用的方法

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

REST使用HTTP向服务发送消息

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

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

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

WSDL可由程序读取,因此可用于生成调用web服务所需的全部或部分客户端代码。这就是所谓基于SOAP的web服务“自描述”的含义


REST与WSDL完全无关。

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

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


REST是网络系统的一种体系结构样式,代表代表性状态转移。它本身不是一个标准,但确实使用了HTTP、URL、XML等标准。

维基百科说“Web服务描述语言是一种基于XML的语言,提供了描述Web服务的模型”。换句话说,WSDL是一个web服务,就像javadoc是一个java库


然而,WSDL真正美妙的地方在于,软件可以使用WSDL生成客户机和服务器。

每当有人提到SOAP/WSDL时,我就会想到xml中定义的对象和类

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

每当有人谈论REST时,我想到HTTP的命令(请求方法),如POST、GET和DELETE,这里也可以找到一些明确的解释(对于SOAP和WSDL)


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

REST是独立于格式的。XML、HTML、JSON所有选项都可用

REST提供了在WSDL/SOAP交互是多点消息交互的情况下进行两点消息传输的能力(这并不奇怪,因为REST代表代表性状态传输)

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

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


一个简单的类比:休息就像一个摩托男孩简单快速地给你送食物。XML扩展的WSDL/SOAP更像UPS交付,更结构化、更严肃,但也有成本。

示例:简单地说,如果您有一个计算器web服务

WSDL:WSDL告诉您可以实现或向客户机公开的功能。例如:添加、删除、减去等

SOAP:在使用SOAP时,您实际上执行了doDelete()、doSubtract()、DoAddd()等操作。所以SOAP和WSDL是苹果和桔子。我们不应该比较它们。它们都有各自不同的功能

为什么我们使用SOAP和WSDL:用于独立于平台的数据交换

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

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

代理类:现在,在看到菜单项后,我们决定(处理我们的想法,决定要订购什么):因此,基本上我们基于WSDL文档创建代理类

SOAP:那么,当我们根据菜单实际点菜时:意味着我们使用代理类调用使用SOAP完成的服务方法。:)

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

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

REST->REST(代表性状态传输)基于传输。与以操作为目标的SOAP不同,REST更关注资源。REST通过使用URL(例如-http://{serverAddress}/employeeNumber/12345)定位资源,并且它取决于要对资源执行的操作的传输协议(使用http-GET、POST、PUT、DELETE等)。REST服务根据URL定位资源,并根据传输操作执行操作