今天给大家带来一份 REST API 关键概念的小抄,专治不明白,还可以学技术英语。
图片
REST,全称 Representational State Transfer (表现层状态转移)。它是一种软件架构风格,而不是标准,所以只提供了一组设计原则和约束条件。
RESTful API 就是满足 REST 风格的 API。这里 RESTful是形容词。
REST 的六项原则是由 Roy Fielding 博士定义的,它们构成了 RESTful API 的基础。REST 的核心原则定义了设计良好的 RESTful 系统应如何运行:
01 客户端-服务器架构
客户端(请求数据)和服务器(提供数据)独立运行,增强了可扩展性和可移植性。
02 无状态
客户端向服务器发出的每个请求都必须包含理解和完成请求所需的全部信息。服务器不会存储客户端的任何会话信息。
03 可缓存性
响应应定义为可缓存或不可缓存。如果一个响应是可缓存的,客户端就可以在将来的同等请求中重复使用响应数据。
04 分层系统
客户端通常无法分辨自己是直接连接到终端服务器,还是连接到沿途的中介。
05 按需编码(可选)
服务器可通过传输可执行代码来临时扩展或定制客户端的功能。
06 统一接口
统一接口可简化和分离架构,使每个部分都能独立发展。
统一接口的四个指导原则是:
- 请求中的资源标识:在请求中识别单个资源,例如在 REST 系统中使用 URI。
- 通过表示操作资源:当客户端持有资源的表示时,就有足够的信息来修改或删除资源。
- 自描述消息:每条信息都包含足够的信息来描述如何处理该信息。
- 超媒体作为应用程序状态的引擎(HATEOAS):客户端完全通过服务器动态提供的超媒体与应用进行交互。
图中给出了一个标准 REST URL (代表了统一接口) 的各个组成部分。