Logo
Section 1 / 6

REST API 简介

了解REST API及其在构建软件解决方案中的重要性。

导入

REST API 简介

了解REST API及其在构建软件解决方案中的重要性。

欢迎来到课程!

我们将通过一个例子来理解 REST。假设你为一家冰淇淋店工作,正在开发一个网页应用,用于展示当天库存的冰淇淋口味。你还希望允许员工对这些口味进行更新。该如何实现呢?

答案是:使用 REST API。你的网页应用或网页通过 REST API 与云端服务器进行通信。接下来我们深入了解一下什么是 REST API。

REST 是什么意思?

REST 是 表述性状态转移(Representational State Transfer)的缩写,本质上是一种标准化的软件架构风格。它是一种广受业界认可和广泛使用的特定类型 API。

关于 REST API,你需要了解的第一点是:它们的核心在于通信。

你可能听说过“RESTful”这个术语。因此,一个 RESTful 网络服务 就是指使用 REST API 进行通信的服务。

...
Basic REST API architecture

REST API 的优势有哪些?

  • REST API 提供了简单且标准化的通信方式。你无需每次担心数据格式或请求格式——所有内容都已标准化,并被行业广泛采用。
  • REST API 具有良好的可扩展性和无状态特性。随着服务复杂度的增加,你可以轻松进行调整。由于其无状态设计,你不必关心客户端与服务器之间数据处于何种状态,也无需跟踪这些状态信息,真正实现了无状态。
  • REST API 性能优异,很大程度上得益于对缓存的支持。即使服务变得越来越复杂,性能依然保持很高水平。

一些其他 API(如 SOAP 或 XML-RPC)会为开发者施加严格的框架限制,而 REST API 可以使用几乎任何编程语言开发,并支持多种数据格式。唯一的要求是必须遵循以下六项 REST 设计原则,也称为架构约束:

  1. 客户端-服务器:在 REST API 设计中,客户端和服务器应用程序必须完全独立。这实现了关注点分离,使每个应用可以独立发展和扩展,从而让组织能够快速高效地成长。
  2. 无状态:REST API 是无状态的,意味着每个请求都必须包含处理所需的所有信息。REST API 不应依赖服务器端存储的数据或会话来决定如何处理请求,而应仅基于请求本身提供的数据进行判断。这意味着服务器不会保存与客户端请求相关的任何数据。
  3. 缓存:在可能的情况下,资源应在客户端或服务器端被缓存。目标是在客户端提升性能,同时增强服务器端的可扩展性。
  4. 统一接口:统一接口使客户端能够以一种统一的语言与服务器通信,而无需关心后端架构的具体实现。
  5. 分层系统:不要假设客户端和服务器直接相连。通信过程中可能存在多个中间组件。REST API 必须设计得让客户端和服务器都无法判断自己是在与最终应用通信,还是与某个中间层通信。
  6. 按需代码(可选):REST API 通常返回静态资源,但在某些情况下,响应中也可以包含可执行代码(如 Java 小程序)。在这种情况下,代码仅在需要时运行。

让我们回到之前的例子。这家冰淇淋店的 REST API 会是什么样子?

你可能会有一个如下所示的端点:

1icecream.com/api/flavors

我们来拆解一下。上述端点中的 api 表示这是该端点的 API 部分,非常直观。

flavors 是实际的资源,表示我们正在操作这个 REST API 中的 flavors 资源。在我们的例子中,REST API 的主要组成部分包括:

  • 客户端发送的 请求
  • 服务器返回的 响应

课程概览

请求与响应的结构