Web services 如何将基于SOAP的服务视为REST样式服务的特例?

Web services 如何将基于SOAP的服务视为REST样式服务的特例?,web-services,rest,soap,software-design,Web Services,Rest,Soap,Software Design,引用自《Java Web服务:启动和运行》第二版 “目前,这两种风格的web服务之间的区别是 不锋利,, 因为通过HTTP交付的基于SOAP的服务可以看作是一个特例 休息式的服务 怎样? 怎么做 我认为作者的说法是错误的 什么是肥皂? 根据维基百科: SOAP可以构成Web服务协议栈的基础层, 提供了一个基本的消息传递框架,可以在该框架上创建web服务 建造。这个基于XML的协议由三部分组成:信封, 它定义了消息中的内容以及如何处理它,一组 用于表示已定义应用程序实例的编码规则 数据类型,以及

引用自《Java Web服务:启动和运行》第二版

“目前,这两种风格的web服务之间的区别是 不锋利,, 因为通过HTTP交付的基于SOAP的服务可以看作是一个特例 休息式的服务

怎样? 怎么做

我认为作者的说法是错误的

什么是肥皂? 根据维基百科:

SOAP可以构成Web服务协议栈的基础层, 提供了一个基本的消息传递框架,可以在该框架上创建web服务 建造。这个基于XML的协议由三部分组成:信封, 它定义了消息中的内容以及如何处理它,一组 用于表示已定义应用程序实例的编码规则 数据类型,以及表示过程调用和 响应。SOAP有三个主要特征:可扩展性 (安全性和WS-routing是正在开发的扩展之一), 中立性(SOAP可以在任何传输协议上使用,如HTTP, SMTP、TCP或JMS)和独立性(SOAP允许任何编程) 模型)

正如您所看到的,在对SOAP的描述中,并没有任何东西对您的API调用的结构(url方面)必须遵循的内容采取任何意识形态立场。当然,soap使用XML,XML可以有一个数据结构,基本上用作API调用的规则集。。。那很酷

相反,我们有休息

什么是休息? 根据维基百科:

REST体系结构样式描述了以下六个约束 应用于体系结构,同时保留 可自由设计的单个组件:

  • 客户端-服务器:服务器与用户界面或用户状态无关,因此服务器可以更简单、更具可扩展性
  • 无状态:在请求之间,服务器上没有存储客户端上下文,这进一步限制了客户端与服务器之间的通信
  • 可缓存:响应必须隐式或显式地定义自己是否可缓存,以防止客户端在响应进一步请求时重用过时或不适当的数据
  • 分层系统:客户端通常无法判断它是直接连接到终端服务器,还是连接到中间层。中间服务器可以通过实现负载平衡和提供共享缓存来提高系统的可伸缩性
  • 按需编码(可选):服务器可以通过传输可执行代码临时扩展或自定义客户端的功能
  • 统一接口:下面讨论的客户端和服务器之间的统一接口简化和解耦了体系结构,使每个部分都能独立发展。(即HTTP GET、POST、PUT、补丁、删除)
比较 在我看来,它不应该被描述为SOAP vs REST,它应该是RPC vs REST。RPC是远程过程调用,这基本上意味着API的每个功能都有一个不同的API端点,依此类推。所以,REST可以使用1个url,就像RPC使用7一样。SOAP是RPC(对吗?)

是的,两者都是web服务

但是说RPC API是RESTful的,因为它是通过
HTTP
传输的,这很难说它们是相似的。。。从上面的详细信息中,您可以看到REST对服务的结构、传输、目的、可伸缩性和状态采取了一种更具意识形态的方法,而SOAP并没有真正讨论这些事情,开发人员可以选择做或不做这些事情

总之,我需要更多的语境来真正理解作者想要表达的观点。如果让RPC API执行RESTful操作,则它可以类似于REST。。但这确实是间接的,不是吗