REST如何“轻量级”?

2022-09-02 13:51:37

我一直看到SOAP是“重量级的”,REST是“轻量级的”。在哪些参数上,我们告诉REST比SOAP轻量级?

我们之前在公司中使用 IFW 模型 Web 服务。但是我们的管理层告诉我们,要在REST中开发所有新的API。我们是我公司的后端服务提供商。

REST如何对我们最有用?

“轻量级”在上下文中是什么意思?

这个问题似乎是重复,但不理解使用的术语。


答案 1

REST 为您提供了进入系统的会话较少窗口。它不跟踪你,它不关心你。您所要做的就是发送一个包含..希望有一些ID来验证你可以做到。它可能会返回HTTP状态代码,它可能会返回一些正文,但最终,一旦请求完成,你就会被遗忘。

SOAP 在某种意义上很重,它描述了远程系统和客户端之间的“契约”。为了让您的客户进行有效的沟通,它必须实现其架构...这是 SOAP 骨架。它描述了您可以进行的调用以及您可以期望返回的对象。

SOAP 之所以很重,是因为序列化。在每个SOAP请求中,您通常会序列化Java对象,通过HTTP发送它并获得序列化响应,该响应通过反射反序列化为对象...这很重。这也意味着,如果终结点更改了它们的工作方式,则必须更改协定。您不必使用 REST 执行此操作。

使用 SOAP 时,您会遇到多线程问题。

快速回答..

它们可能意味着 REST 服务是“轻量级的”,因为您不需要将更改发布到客户端。您只需对逻辑进行更改,保留URL,响应应保持不变。

使用 SOAP...如果将新字段添加到对象,则必须让客户端实现新架构。SOAP已经很老了。


答案 2

REST是轻量级的,因为它依赖于HTTP标准来完成它的工作。快速启动并运行有用的 Web 服务真是太好了。如果您不需要严格的API定义,这就是要走的路。大多数 Web 服务都属于此类别。您可以对 API 进行版本控制,以便 API 的更新不会破坏使用旧版本的用户(只要他们指定版本)。REST本质上需要HTTP并且与格式无关,因此您可以使用XML,JSON,HTML等)。

但是 SOAP 会将结构包装到 SOAP 信封中(遵循 XML 标准)。SOAP 信封的复杂性基于使用的消息版本和其他 Web 服务协议。SOAP通常与传输无关,这意味着您不一定需要使用HTTP。

可以指出,SOAP是为分布式计算环境设计的,而REST是为点对点环境设计的。

我想知道是否可以说,虽然SOAP提供了更多的安全性,但基于REST的API在资源上会更容易,并且更具可扩展性?例如,Twitter,Facebook,Google Drive,Blogger等都有基于REST的API,客户可以使用。