RESTful Web 服务简介

2025 年 2 月 25 日 | 阅读时间:2 分钟

REST 代表 REpresentational State Transfer(表述性状态转移)。它由 Roy Thomas Fielding 开发,他也开发了 HTTP。RESTful Web 服务的主要目标是使 Web 服务 更加有效 。RESTful Web 服务尝试使用 HTTP 中已存在的不同概念来定义服务。REST 是一种 架构方法 ,而不是协议。

它没有定义标准的消息交换格式。我们可以使用 XML 和 JSON 构建 REST 服务。JSON 是 REST 中更流行的格式。REST 中的 关键抽象 是资源。资源可以是任何东西。可以通过 统一资源标识符 (URI) 访问它。例如

该资源具有 XML、HTML 和 JSON 等表示形式。当前状态由表示资源捕获。当我们请求资源时,我们提供资源的表示形式。HTTP 的重要方法是

  • GET: 它读取资源。
  • PUT: 它更新现有资源。
  • POST: 它创建一个新资源。
  • DELETE: 它删除资源。

例如,如果我们想在社交媒体应用程序中执行以下操作,我们会得到相应的结果。

POST /users: 它创建一个用户。

GET /users/{id}: 它检索用户的详细信息。

GET /users: 它检索所有用户的详细信息。

DELETE /users: 它删除所有用户。

DELETE /users/{id}: 它删除一个用户。

GET /users/{id}/posts/post_id: 它检索特定帖子的详细信息。

POST / users/{id}/ posts: 它创建用户的帖子。

此外,我们将在我们的项目中实现这些 URI。

HTTP 还定义了以下标准状态代码

  • 404: 找不到资源
  • 200: 成功
  • 201: 已创建
  • 401: 未授权
  • 500: 服务器错误

RESTful 服务约束

  • 必须有服务生产者和服务消费者。
  • 该服务是无状态的。
  • 服务结果必须是可缓存的。
  • 接口是统一的并公开资源。
  • 该服务应采用分层架构。

RESTful Web 服务的优势

  • RESTful Web 服务是 平台无关的
  • 它可以用任何编程语言编写,并且可以在任何平台上执行。
  • 它提供不同的数据格式,如 JSON、文本、HTML XML
  • 与 SOAP 相比,它速度更快,因为没有像 SOAP 这样的严格规范。
  • 这些都是 可重用的
  • 它们是 语言中立的