web-services - 如何将 Web 服务与 SOAP 和 REST 相关联

标签 web-services rest soap wsdl

老实说,我真的不明白 Web 服务与 SOAP 和 REST 共享的关系。

我对整个主题的理解非常简单,网络服务是旨在促进网络上机器对机器通信的软件。 Web 服务有一个机器可以理解的接口(interface) (WSDL)。其他系统使用 SOAP 消息与服务交互。

我对 Web 服务的理解哪里出错了?

最佳答案

非常简短的答案尝试 - 如果这不起作用,那么请编辑您的问题或评论以阐明您正在寻找的内容。

SOAP 基本上是一种协议(protocol),允许以独立于平台的方式执行 RPC 或通过传递单向文档(不经常这样做)。它本质上是相对程序性的。您是正确的,WSDL 是两个软件同意通过其进行通信的接口(interface)契约(Contract)(我注意不要在那里说“机器”,因为您也可以在同一台机器上进行 SOAP 交互。

REST 本身更多地是关于我们应该如何公开“资源”并与之通信的范例。我认为它有点面向对象,因为您正在处理的所有内容都是在特定 URL 上公开的资源(或对象),该 URL 上定义了相同的方法……由 HTTP 协议(protocol)建立的相同方法,基本上相当于一个增删改查界面。尽管没有既定的契约,但对于带有 SOAP 的 WSDL,这并不意味着 REST“服务”没有接口(interface)……它们有。他们只是没有统一的方式来为他们提供契约(Contract)(也许 WADL 正在变得足够广泛)。

如果您对 REST 感到好奇,我强烈建议您提供 "RESTful WebServices" by Ruby and Richardson阅读。

关于web-services - 如何将 Web 服务与 SOAP 和 REST 相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699716/

相关文章:

java - jmeter是否使SOAP请求超时

javascript - 使用地理定位选择 REST 服务器

java - 验证嵌套资源的路径

c# - ASP.NET网页.aspx.cs文件中的私有(private)静态变量

c# - 是否可以使用 System.Net.Http.HttpClient 的持久连接?

PHP SoapClient 没有为所有元素添加命名空间

java - 使用 Spring-WS 和 JAXB 的 AbstractMethodEndpointMapping 中的 AbstractMethodError

visual-studio-2010 - 无法使用自动创建的 WSDL 代理类发送 SOAP 请求

java - 在我的 REST 客户端中获取 REST 服务数据

node.js - 如何加快 Mongoose 中的 MongoDB 查询速度?