WebService —SOAP vs REST(wsdl和wadl区别)(转)

  • A+
所属分类:系统文档

SOAPREST是两种实现WebService的主要方案(Web API部署REST貌似占了大半壁江山)

  • REST Web Services 基于 HTTP 协议

  • SOAP Web Services 支持多种传输协议:HTTP、SMTP、MIME等

Java开发WebService最重要的两个规范

  • JSR-224 (JAX-WS:Java API for XML-Based Web Services ) ,主要使用soap协议,使用wsdl来描述;

  • JSR-311 (JAX-RS:The Java API for RESTful Web Services),使用wadl描述;

RESTSOAP的区别:

  • REST为每一个资源指定一个唯一的URI,用HTTP的4种方法发送请求:GET、POST、PUT、DELETE直观地表示获取、创建、更新和删除。

  • SOAP仅仅使用POST方法发送请求,用一个唯一的URI标识服务的入口。(因为SOAP并不假定传输数据的下层协议,因此必须设计为能在各种协议上运行。即使绝大多数SOAP是运行在HTTP上,使用URI标识服务。这种设计被诟病之处,在于DELETE操作也要用POST方法来发送,而其实HTTP协议有更和逻辑的DELETE方法可用。)

尺长寸短:
REST的优点:REST简单而直观,把HTTP协议利用到了极限。
SOAP复杂的需求摧残了易用性。

说到底,没有谁是万能的

  • REST用WADL来描述REST接口。WADL就像是WSDL的REST版,随着REST被应用到复杂的领域,SOAP的影子无处不在。

  • 事实上,一些Web Service提供者提供的REST API只有REST的外壳,传输的请求和应答全然是简化了的SOAP。

“没有一项技术能一劳永逸地解决所有问题,只需要在预定的约束下优美地解决所在领域的问题就足够了。

一项新技术推出的时候总是引来无数的跟风和吹捧,只有当尘埃落定之后才能得到中肯的评价。”

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: