REST API 是一种常见的 Web API 设计方式,它围绕资源来组织,例如用户、题目或订单。每个资源都有一个 URL,而 GETPOSTPATCHDELETE 等 HTTP 方法则告诉服务器,客户端想执行什么操作。

REST 是 Representational State Transfer 的缩写,通常译为“表述性状态转移”。在实际使用中,客户端发送 HTTP 请求,服务器返回某个资源的表述形式,而且每个请求本身都应该是可理解的。很多 REST API 会返回 JSON,但仅仅使用 JSON 并不意味着这个 API 就是 RESTful。

REST API 的含义:从资源来理解

理解 REST 最快的方法,是先把它看成“名词”的设计,而不是“动词”的设计。

如果你的系统里有题目、学生和作答记录,那么它们都可以是资源。面向资源的 API 往往会使用像 /api/problems/42/api/attempts/9001 这样的 URL。

然后由 HTTP 方法来说明具体发生了什么操作:

  • GET 读取资源
  • POST 创建新资源
  • PUT 替换整个资源
  • PATCH 更新资源的一部分
  • DELETE 删除资源

这种分工让 REST 很容易快速读懂。URL 说明你在处理什么,方法说明你想做什么

REST API 请求是如何工作的

在典型流程中,浏览器、移动应用或另一个服务会向服务器发送请求。请求中包含 URL、HTTP 方法、可选的请求头,有时还会带上请求体。

服务器读取请求,执行相应操作,然后返回响应。响应通常会包含状态码,例如 200 OK201 Created404 Not Found,以及描述结果的数据。

其中一个重要条件是无状态性。在 REST 中,每个请求都应该包含处理该请求所需的上下文信息。这并不表示服务器完全不存储数据,而是说服务器不应该依赖之前请求留下的隐藏会话状态,才能理解当前请求。

REST API 示例:一个数学练习应用

假设一个数学练习应用保存了代数题目和学生的作答记录。

要读取第 4242 题,客户端可能会发送:

需要解题帮助?

上传你的问题,几秒钟内获得经过验证的分步解答。

打开 GPAI Solver →