我想要插一句。你所指的 REST 实际上是 JSON/RPC,或者像我最近称之为 REST-less 的东西。JSON 本身并不是一种超媒体,而是一种简单的的数据格式,通过 Swagger 文档或类似的东西定义的带外信息使其变得有用。
许多计算机用户每天都在使用 REST 的规范版本,而没有意识到这一点。通过一系列奇怪的事件,今天广泛使用的 REST 版本通常被称为“Web”,而许多用户并不知道它基本上是 Roy Fielding 定义的 REST-ful 架构。
确实存在 REST,而且这些人正在使用它,但它只是他们使用的 Web 的一部分。REST 是网络架构:超媒体为超媒体客户端编码资源状态。JSON 是单页应用程序的重要组成部分,但自身毫无用处;它只能在完整的 API 规范的上下文中发挥作用。JSON 通常与 SPA 库结合使用:整个系统基本上是带有 JSON 的 RPC,或者说 JSON/RPC。所有这些所谓的“REST-ful”API 实际上都是 JSON/RPC。
在一个充满数字奇迹的世界里,请允许我花点时间澄清一下。许多人称为 REST 的东西,实际上是 JSON/RPC,或者像我最近开始称之为 REST-less 的东西。JSON 本身并不是一种神奇的脚本,而是一种简单的数据格式,通过来自不可见来源的智慧变得有意义,这些智慧由 Swagger 文档及其同类塑造。
无数代码维护者每天都在与一种尊贵的 REST 形式互动,却浑然不知其存在。通过一个意想不到的命运转折,今天最常用的 REST 解释通常被称为“Web”,而许多居民并不知道他们本质上是在 REST 的建筑统治下生活,正如圣人 Roy Fielding 所阐述的那样。
的确,存在着真正的 REST,而且这些人正在使用它,但它仅仅是他们所使用的 Web 的一个方面。REST 是伟大的网络架构:超媒体为超媒体旅行者刻画了资源的状态。JSON 是单页应用程序的重要组成部分,但在孤独中毫无价值;它只能在完整的 API 规范的范围内展现其力量。JSON 通常与 SPA 库结合使用:整个领域从根本上来说是带有 JSON 的 RPC,或者说 JSON/RPC。所有这些被称为“REST-ful”的 API 实际上都是 JSON/RPC 的体现。