REST是一种用于设计网络应用程序的架构风格,是一组约束和原则的集合,它强调系统的可伸缩性、简单性和状态的无状态性。REST 是由 Roy Fielding 在他的博士论文中首次引入的,该论文于 2000 年发表。

REST 设计的主要原则包括:

  1. 无状态性(Statelessness):
    • 每个请求从客户端到服务器之间都包含了所有必要的信息,服务器不保存客户端的状态。每个请求都是独立的,服务器无需存储上下文信息。
  2. 资源(Resources):
    • 资源是 REST 的核心概念,它可以是任何可以通过 URI 进行标识的东西,如文档、图像、服务等。每个资源都有唯一的标识符(URI)。
  3. 表述(Representation):
    • 资源的表述是资源的具体呈现形式,例如 JSON、XML 等。客户端通过获取和发送这些表述来与服务器交互。
  4. 统一接口(Uniform Interface):
    • 统一接口是 RESTful 设计的重要原则,包括统一的资源标识、统一的资源操作(通过标准的 HTTP 方法,如 GET、POST、PUT、DELETE 等)、资源的自描述性和资源的超媒体作为应用状态引擎(HATEOAS)。
  5. 状态的转移(State Transfer):
    • 客户端通过获取、处理和操作资源的表述来进行状态的转移,而不是通过服务器的状态。这也是通过 HTTP 方法实现的,如 GET 用于检索资源,POST 用于创建资源,PUT 用于更新资源,DELETE 用于删除资源。

RESTful 设计旨在简化系统的架构和交互,使系统更具可扩展性和可维护性。RESTful API 是基于 REST 架构风格设计的应用程序接口,通过使用 HTTP 协议作为通信协议,使得 API 更具可访问性和互操作性。