RESTFull API #
API #
全称 应用程序接口 主要为前端或者后端其他服务提供API比如查询用户数据。
REST #
REST 是表述性状态转移 (REpresentational State Transfer) 的缩写,是一种分布式超媒体系统的架构风格。从那时起,它就成为构建基于 Web 的 API(应用程序编程接口)最广泛使用的方法之一。
REST
-
不是
一种协议或一种标准
-
而是
一种架构风格。在开发阶段,API 开发人员可以通过多种方式实现 REST。
约束:
- 资源识别 ——接口必须唯一地标识客户端和服务器交互中涉及的每个资源。
- 通过表述操纵资源 – 资源在服务器响应中应具有统一的表述。API 使用者应使用这些表述来修改服务器中的资源状态。
- 自描述消息 – 每个资源表示都应包含足够的信息来描述如何处理消息。它还应提供客户端可对资源执行的其他操作的信息。
- 超媒体作为应用程序状态的引擎 – 客户端应该只拥有应用程序的初始 URI。客户端应用程序应该使用超链接动态驱动所有其他资源和交互。
资源 #
REST 中信息的关键 抽象 是 资源。任何我们可以命名的信息都可以是资源。例如,REST 资源可以是文档或图像、时间服务、其他资源的集合或非虚拟对象(例如,人)。
在任何特定时间,资源的状态称为 资源表示。资源表示包括:
- 数据
- 描述数据的元数据
- 以及可以帮助客户端过渡到下一个期望状态的超媒体链接。
资源方法 #
资源方法用于执行任何资源的两种状态之间所需的转换。
总结
简单来说,在 REST 架构风格中,数据和功能被视为资源,并使用 统一资源标识符 (URI) 进行访问。
通过使用一组简单、定义明确的操作来对资源进行操作。此外,资源必须与其表示分离,以便客户端可以访问各种格式的内容,例如 HTML、XML、纯文本、PDF、JPEG、JSON 等。
客户端和服务器使用标准化接口和协议交换资源表示。通常,HTTP 是最常用的协议,但 REST 并不强制要求使用 HTTP。
有关资源的元数据可用并用于控制缓存、检测传输错误、协商适当的表示格式以及执行身份验证或访问控制。
最重要的是,与服务器的每次交互都必须是无状态的。