除了互操作性之外,Restful Web服务的优势是什么?



我是一般的Web服务的新手。但是,我无法理解它与传统 MVC 架构相比的真正优势。

我知道如果我公开一个 Web 服务,其他用其他编程语言编写的应用程序可以理解(因为数据将以 XML 或 JSON 交换)

但是,如果我的应用程序不需要与其他应用程序通信,该怎么办?我还有理由使用 Web 服务吗?

根据我的理解。在传统的 MVC 应用中,当浏览器发送请求时,服务器会用 HTML 进行响应。使用Web服务,只会发送数据,并且像Angular JS这样的客户端代码将使用样式在浏览器上呈现该数据。但是,仍然。我应该仍然使用什么 rest api?传统的MVC也可以达到相同的结果。

这个问题在 Fielding 论文的第 5 章中得到了回答,其中定义了 REST 架构风格以及一些约束。

因此,让我强调其中的一些限制以及它们旨在解决的问题:

  • 客户端-服务器:通过简化服务器组件来强制分离关注点并提高可伸缩性。它允许客户端和服务器单独发展。

  • 无状态:从客户端到服务器的每个请求都必须包含服务器理解所需的所有信息,而不利用服务器上的任何存储上下文,从而实现可扩展性。

  • 缓存
  • 鼓励存储可缓存数据,提高网络效率。

  • 统一界面:旨在简化整体系统架构并提高交互的可见性。它建立在其他 4 个约束之上:

    • 确定资源;
    • 通过陈述操纵资源;
    • 自我描述性消息;
    • 超媒体作为应用程序状态的引擎。
  • 分层系统:通过约束组件行为,允许架构由分层层组成,使每个组件无法"看到"它们与之交互的直接层之外。它有助于创建更具可扩展性和模块化的应用程序。

同样重要的是要强调 REST 的核心部分是资源。一个资源可以有多个表示形式。支持同一资源的多个表示形式背后的目标是,客户端将能够选择最适合其需求的表示形式。它被称为内容协商,在 REST 架构风格中受到鼓励。

最新更新