什么是 REST API 及其工作原理 – 初学者指南
已发表: 2023-11-09REST API(即表述性状态传输应用程序编程接口)是一组允许系统通过 Internet 相互通信的规则和约定。 它是一种广泛用于设计网络应用程序的体系结构风格。
REST 基于客户端-服务器模型,其中客户端(例如 Web 浏览器或移动应用程序)向服务器发出请求,服务器使用请求的数据进行响应或执行某些操作。 以下是与 REST API 相关的关键概念的细分。
资源
在 REST 中,一切都被视为资源,可以是特定的数据片段或对象。 例如,博客文章、用户个人资料或产品都可以是资源。
统一资源标识符
每个资源都由唯一的统一资源标识符 (URI) 标识,通常称为 URI。 URI 表示服务器上资源的地址。
HTTP 方法
REST API 使用 HTTP 方法来定义要对资源执行的操作。 最常用的方法如下。
- GET:此方法返回资源的表示形式。
- POST:创建新资源。
- PUT:此方法更新或替换现有资源。
- DELETE:删除资源。
陈述
资源可以用多种格式表示,包括 JSON、XML 和 HTML。 客户端和服务器使用 HTTP 标头就表示格式达成一致。
无状态通信
REST API 是无状态的,这意味着从客户端到服务器的每个请求都必须包含理解和处理该请求的所有必要信息。 服务器在请求之间不维护任何特定于客户端的状态。
回应
当服务器收到请求时,它会处理该请求并发回响应。 该响应通常包括指示请求成功或失败的状态代码(例如,200表示成功,404表示未找到),以及所请求的数据或相关信息。
“REST”和“API”分别意味着什么?
“REST”代表表述性状态转移。 它是一种用于设计网络应用程序和 Web 服务的架构风格。
“API”代表应用程序编程接口。 它是一组允许各种软件程序相互连接的规则和协议。 API 定义了不同软件系统组件如何交互和交换数据。
组合起来时,“REST API”指的是遵循 REST 架构风格原则的 API。 它是一组用于构建可使用 HTTP(超文本传输协议)通过 Internet 访问的 Web 服务的规则和约定。 REST API 为系统提供了一种标准化的方式来通信和交换数据,通常采用 JSON 或 XML 的形式。
REST API 如何工作?
REST API(表述性状态传输应用程序编程接口)基于客户端-服务器模型工作,并遵循一组原则和约定。 以下是 REST API 工作原理的分步概述。
1. 客户端发送请求
客户端可以是 Web 浏览器、移动应用程序或任何其他应用程序,通过向服务器发送 HTTP 请求来发起通信。 该请求包括所需资源的 URL(统一资源定位符)和指示要执行的操作的 HTTP 方法(GET、POST、PUT、DELETE 等)。
2. 服务器接收请求
服务器接收请求并根据提供的 URL 和 HTTP 方法进行处理。 服务器识别所请求的资源并确定要执行的适当操作。
3. 服务器处理请求
根据 HTTP 方法,服务器对请求的资源执行必要的操作。 例如:
- GET:服务器检索请求的资源并将其在响应中发送回客户端。
- POST:服务器根据客户端发送的数据创建新的资源。
- PUT:服务器用客户端提供的数据更新或替换现有资源。
- DELETE:服务器从系统中删除请求的资源。
4. 服务器发送响应
服务器处理请求后生成 HTTP 响应。 该响应包括指示请求结果的状态代码(例如,200 表示成功,404 表示未找到),并且可以包含所请求的数据或相关信息。 响应通常以 JSON 或 XML 等格式发送回客户端。
5. 客户端收到响应
HTTP 响应由服务器发送给客户端。 它解释状态代码以确定请求的成功或失败。 如果响应包含数据,客户端可以根据需要提取并使用该数据。
6. 客户端处理响应
客户端应用程序处理收到的响应,提取相关信息,并根据响应数据执行任何所需的操作。 这可能涉及更新用户界面、本地存储数据或触发对 API 的后续请求。
对于客户端和服务器之间的每次交互,都会重复此请求-响应循环。 REST API 是无状态的,这意味着来自客户端的每个请求都必须包含服务器理解和处理请求的所有必要信息。 服务器在请求之间不维护任何特定于客户端的状态。
为什么选择 REST API?
总的来说,选择 REST API 可以提供简单性、可扩展性、互操作性以及与现有 Web 标准的兼容性。 这些因素使 REST 成为构建 API 的流行选择,从而实现各种应用程序中不同系统之间的高效通信和集成。
选择 REST API 对您的应用程序开发有利有多种原因。
1. 简单易用
REST API 对于开发人员和与 API 交互的客户端而言都相对简单且易于理解。 它们使用标准 HTTP 方法并遵循基于资源的方法,使其易于使用和学习。
2. 可扩展性
REST API 设计为可扩展的,可以处理大量客户端和请求。 它们利用底层 HTTP 协议的可扩展性功能,例如负载平衡和缓存,可以增强 API 的性能和响应能力。
3. 灵活性和互操作性
REST API 支持不同系统和平台之间的互操作性。 可以使用大多数编程语言中提供的标准 HTTP 库来访问它们,从而允许客户端使用 API,无论其技术堆栈如何。 这有利于与第三方服务的集成,并支持开发多样化的客户端应用程序。
4. 无国籍性质
REST API 是无状态的,这意味着来自客户端的每个请求都包含服务器处理它所需的所有必要信息。 这种简单性使得 API 更具可扩展性,因为服务器不需要在请求之间维护特定于客户端的状态。 它还允许更好的容错能力和更容易的负载平衡。
5. 广泛采用和社区支持
REST 是一种广泛采用的架构风格,并且有大量的开发人员社区和资源可供支持。 这意味着您可以找到大量专为使用 REST API 而构建的库、框架和工具,从而使开发任务变得更轻松、更高效。
6. 与网络标准的兼容性
REST API 构建在 HTTP 协议之上,利用其功能并遵守其标准。 这种兼容性确保了 REST API 可以与现有的 Web 技术无缝集成,例如缓存机制、安全协议 (HTTPS) 和身份验证机制(例如 OAuth)。
结论
总之,REST API 提供了一种标准化且可扩展的方法来构建 Web 服务并促进系统之间的通信。 通过遵循 REST 原则,例如使用 HTTP 方法、基于资源的 URL 和自描述响应,REST API 提供了简单性、灵活性和互操作性。
REST API 与语言无关,可以在各种平台上实现,从而可以在不同系统之间轻松集成和通信。 它们被广泛采用和支持,有一个大型社区提供开发资源和工具。