6 使用soap客户端_SOAP与REST的对比

fbd128c26946a6227d32f29a1e65f4ac.png

双方程序员针对需求文档的一段对话:

61dda8c87e3bf15d4fb6432bca9cfb33.png

您好,我看文档中写的通讯使用JSON格式的WebService协议,请问是SOAP还是REST的呢

如果是SOAP协议的话能否提供一下对应的WSDL

乙方 : 呃呃呃 dda77694f8cfd37147d1cc3dfc8e315b.png

WebService三要素

SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration), soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。

幂等性

对同一个系统,使用同样的条件,一次请求和重复的多次请求对系统资源的影响是一致的。

SOAP

简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的 协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于“通用”传输协议是 SOAP的一个优点。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。其实SOAP最早是针对RPC的一种解决方案,很轻量,同时作为应用协议可以基于多种传输协议来传递消息(Http,SMTP等)。但是随着SOAP作为WebService的广泛应用,不断地增加附加的内容,使得现在开发人员觉得SOAP很重,使用门槛很高,而且随着需求的增长,又不得增加协议以支持安全性,这使SOAP变得异常庞大,背离了简单的初衷。在SOAP后续的发展过程中,WS-*一系列协议的制定,增加了SOAP的成熟度,也给SOAP增加了负担。SOAP 常常被称作“web services”,这是一个误称。SOAP 和 web 基本上说不上话。REST 提供的才是真正的基于 URL 和 HTTP 的 “web services”。

REST

相对而言,SOAP协议属于复杂的、重量级的协议,当前随着Web2.0的兴起,表述性状态转移(Representational State Transfer,REST)逐步成为一个流行的架构风格。REST是一种轻量级的Web Service 架构风格,其实现和操作比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,这种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST架构尤其适用于 完全无状态的CRUD(Create、Read、Update、Delete,创建、读取、更新、删除)操作。 基于REST的软件体系结构风格(Software Architecture Style)称之为 面向资源体系架构 (Resource-oriented Architecture,ROA)。按照REST原则设计的软件、体系结构,通常被称为“REST式的”(RESTful)。 由于没有类似于SOAP的权威性协议作为规范,因此各个网站的REST实现都自有一套,也正是因为这种各自实现的情况,在性能和可用性上会大大高于SOAP发布的web service,但细节方面有太多没有约束的地方,其统一通用方面远远不及SOAP。

举个例子:假设A组织,B组织都实现了Restful API来通过工号查询人员信息,因为没有统一的规范。

--- A的API 可能是这样:http://A/api/person/001--- B的API 可能是这样:http://A/api/person/id=001

    第三方客户端在实现远程调用的时候就必须考虑这些API的差异,分别查看A,B的API文档。 如果有个权威性协议作为规范做指导,规定这个API应该实现成下面这样,那么第三方客户端也只需按照这个标准去调用远程API,而不用查看A,B的API文档:

http://A/api/person/{001}
REST和SOAP区别
SOAPREST
成熟度
效率和易用性
安全性
原子性事务/消息可靠性

.NET中如何查看WSDL

edced10cc1a7a72f4a42101c4b6b3acb.png

END ddebb94f3621748975cf13274f08157c.png

5afe8aff719d6e3eb8a2691eafa4e78b.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值