Module 02 · Web API Essentials: REST API and GraphQL
What is REST?REST 简介
什么是 REST?
REST(Representational State Transfer,表述性状态转移)是一种架构风格,定义了应用程序在网络中应如何相互通信。
- 作用: REST API 提供了一种灵活、轻量级的方式来集成应用程序。
- 应用: REST API 已成为微服务架构中最常见的组件连接方法。
RESTful API 的关键特征
一个 API 必须具备以下三个特征才能被称为 RESTful:
1. 基于 HTTP 的请求管理
- REST API 通过 HTTP 请求进行通信,以执行对资源的标准功能,即 CRUD(Create, Read, Update, Delete,创建、读取、更新和删除)。
HTTP 方法 对应的 CRUD 操作 目的 POST Create(创建) 用于创建新记录。 GET Read(读取) 用于检索记录。 PUT Update(更新) 用于更新记录。 DELETE Delete(删除) 用于删除记录。
2. 无状态的客户端-服务器通信
- 无状态性(Stateless)意味着每个请求都包含处理它所需的所有信息。
- REST 的创始人 Roy Fielding 在他的论文中指出:
“从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。因此,会话状态完全保留在客户端。”
- 优势: REST API 的这种无状态特性也使其具有可伸缩性(scalable)。
3. 组件间的统一接口
- RESTful API 的主要优势在于其统一接口(uniform interface),无论请求源自何处。
- 资源标识: REST API 应确保相同的数据片段(例如:产品 ID)只属于一个统一资源标识符 (URI)。
- 信息完备性: 资源应包含客户端可能需要的所有信息(例如:客户端可能需要产品的名称和价格)。
使用 REST API 的益处
- 灵活统一: 在组件之间提供了灵活但统一的接口。
- 可伸缩性: 无状态性使 API 具有高伸缩性。
- 易于集成: 提供了轻量级的应用集成方式。
示例:加密货币交易所 API
- CEX.IO 等加密货币交易所通过 REST API 为开发者提供比特币、其他加密货币价格和市场数据。
- API 调用通常以简单的 JSON 格式记录,详细说明请求和响应参数。
- 开发者可以通过公共 API 请求特定货币对的最新价格。
总结
- REST 是一种定义应用程序通信方式的架构风格。
- REST API 提供组件之间灵活而统一的接口。
- REST API 是无状态且可伸缩的。
- REST API 使用 HTTP 方法(POST, GET, PUT, DELETE)进行通信。