REST如何"轻量级"?

Man*_*noj 16 java rest web-services

我一直认为SOAP是"重量级"而REST是"轻量级".在什么参数上,我们告诉REST比SOAP更轻量级?

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

REST如何对我们最有用?

"轻量级"在上下文中意味着什么?

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

Sli*_*ihp 9

REST为您提供了一个较少会话的系统窗口.它不跟踪你,它不关心你.您所做的就是发送一个请求,其中包含一些id,以确认您可以创建它.它可能会返回一个HTTP状态代码,它可能会返回一些正文,但最终,一旦请求完成,您就会被遗忘.

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

SOAP很重的原因是序列化.当你通常序列化的Java对象的每个SOAP请求,发送通过HTTP和得到被反序列化为通过反射的对象的序列化反应......这是沉重的.这也意味着如果端点改变了它们的工作方式,则必须更改合同.您不必使用REST执行此操作.

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

快速回答..

它们可能意味着REST服务是"轻量级"的,因为您不需要向客户端发布更改.您只需更改逻辑,保留URL并且响应应保持不变.

使用SOAP ...如果向对象添加了新字段,则必须让客户端实现新模式.SOAP很老了.

  • 即使在REST中,如果我们在XML中添加新字段,客户端需要知道rite吗? (2认同)
  • 棘手的一个.如果要添加子元素甚至父元素,则不.但是,如果您更改了他们期望的元素/属性的名称,那么他们将需要实施更改. (2认同)

mid*_*nhk 2

REST 是轻量级的,因为它依赖于 HTTP 标准来完成其工作。能够快速启动并运行有用的 Web 服务真是太好了。如果您不需要严格的 API 定义,这就是正确的选择。大多数网络服务都属于这一类。您可以对 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。