Coursera 笔记

Module 02 · Web API Essentials: REST API and GraphQL

What is REST?REST 简介

Coursera ↗

什么是 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)进行通信。