第 1 章 RESTful Web API 简介
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
利用全球影响力,为从未谋面的人解决你未曾想过的问题。
RESTful 网络应用程序接口原则
在前言中,我提到了本书拗口的书名,认为这是本书的一个亮点。在这里,我们将探讨RESTful Web API背后的思想,以及为什么我认为使用这种命名方式并理解其背后的含义非常重要。
首先,我将谈谈 "RESTful Web APIs "这个短语的含义,以及我为什么选择这个看似拗口的术语。接下来,我们将花一些时间来讨论我所称的能够在开放网络上提供弹性和可靠服务的关键驱动技术--超媒体。最后,我们将用一小部分时间探讨实现和使用基于 REST 的服务接口的一系列共同原则--这些原则将指导我们选择和描述本书中的模式和秘诀。
基于超媒体的实施依赖于三个关键要素:信息、操作和词汇表(见图 1-1)。在基于超媒体的解决方案中,信息使用 HTML、Collection+JSON 和 SIREN 等通用格式传递。这些信息包含基于共享领域词汇的内容,如银行业的 PSD2、保险业的 ACORD 或健康信息的 FIHR。这些信息还包括定义明确的操作,如save,share,approve 等。
图 1-1. 超媒体的要素
我希望通过这三个概念,让大家思考我们今天是如何通过 HTTP 构建和使用服务的,以及如何通过稍微改变一下视角和方法,更新这些服务的设计和实施,从而提高其可用性,降低创建和访问这些服务的成本,并增强服务生产者和消费者构建和维持以 API 为主导的可行业务的能力--即使我们依赖的某些服务不可靠或不可用。
首先,我们来探讨一下书名背后的含义。
什么是 RESTful Web API?
几年来,我一直在文章、演讲和培训材料中使用 "RESTful Web API "这个短语。2013 年,我和我的同事伦纳德-理查森(Leonard Richardson)就这个话题写了一整本书。有时,这个词会让人产生困惑,甚至怀疑,但几乎每次都会引起人们的好奇。这三个词放在一起有什么用?这三个概念的组合作为一个整体意味着什么?要回答这些问题,不妨花点时间逐一厘清每个概念的含义。
因此,在本节中,我们将参观
- 菲尔丁的休息
-
强调组件交互的可扩展性、接口的通用性和组件的独立部署的架构风格。
- 蒂姆-伯纳斯-李的网络
-
万维网被视为一个通用的链接信息系统,其通用性和可移植性至关重要。
- 艾伦-凯的极端后期装订
-
设计美学使您能够构建系统,并在系统运行时安全地进行更改。
菲尔丁的休息
早在 1998 年,罗伊-菲尔丁(Roy T. Fielding)就在微软公司发表演讲,解释了他的 "表征状态转移"(Rest)概念。在这次演讲和两年后他的博士论文("架构风格和基于网络的软件架构设计")中,菲尔丁提出了这样一个观点:有一套独特的软件架构适用于基于网络的实现,而他所概述的六种风格之一--REST--尤其适用于万维网。
提示
多年前,我学会了一句话:"常被引用,从未被阅读"。这句尖刻的评论似乎非常适合菲尔丁 2000 年的论文。我鼓励每一位致力于创建或维护基于网络的软件的人花时间读一读他的论文--不仅仅是臭名昭著的第 5 章 ...