什么是 REST API:驱动互联网的四个词

发布: (2026年5月6日 GMT+8 11:55)
8 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的完整文本内容,我将把它翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。谢谢!

你从未质疑的菜单

你可能已经走进餐厅上百次,却从未思考它是如何运作的。

你坐下。服务员出现。你指着菜单上的某样东西。食物送达。

简单。舒适。熟悉。

但如果我告诉你,这完全相同的系统——你、服务员和厨房之间那种安静、有序的舞蹈——正是你手机上几乎所有应用在幕后进行通信的方式?

欢迎来到 REST APIs 的世界。

没有规则的问题

想象一个没有菜单的世界。

每位顾客直接走进厨房,用他们随意的语言大声喊出订单,并指望厨师能听懂。有人画了一张汉堡的图。另一个人哼唱着意面的描述。还有人只是愤怒地指着炉子。

混乱。

这就是在制定标准之前软件通信的样子。每个系统都有自己独特的交流方式。如果想让两个系统协同工作,你每次都必须学习一种全新的语言。

这既耗费精力,又难以扩展。必须要有改变。

于是,行业像几个世纪前所有优秀餐厅所做的那样——他们创建了一个菜单。

这个菜单叫 REST

知晓规则的服务员

REST —— 即 Representational State Transfer(表述性状态转移)—— 只是一套约定好的规则,规定系统在互联网上如何相互通信。

正如任何一家好的餐厅,它之所以运作良好,是因为每个人都扮演好自己的角色。

  • 客户端 – 前端,手机上的应用,浏览器中的网站。你知道自己想要什么,但不会冲进厨房自己去取。
  • 后端 – 厨房,真正的工作在这里进行,数据存放于此,请求在此被处理。你不需要看到它或了解它,只需要你的订单被完成。
  • API(服务员) – 将你的请求从一端传递到另一端,并把答案返回,同样流畅、毫不混乱,每一次都是如此。

但正是这些让 REST API 与众不同——服务员并不是随意接受任何格式的订单。它有结构。有语言。有菜单。

学习菜单

在餐厅里,菜单告诉你有什么可供选择以及如何点餐。在 REST API 中,这份“菜单”由四个简单的操作组成——四个词几乎涵盖了你对数据可能需要的所有操作。

GET — “把东西给我。”

你想查看自己的个人资料、产品列表或今天的新闻推送。GET 会去获取它们。

POST — “添加新东西。”

创建账户、提交表单、发布照片——POST 将你准备好的内容送到厨房进行制作。

PUT / PATCH — “更改已经存在的东西。”

更新用户名、编辑预订或修改任何已有资源。PUTPATCH 会返回厨房,请厨师对菜品进行调整。

DELETE — “把它拿走。”

删除帖子、取消账户或清除旧数据。DELETE 把盘子收回,并确保它不再出现。

四种操作。几乎无限的可能性。

每个请求的地址

了解要请求什么只是故事的一半。你还需要知道在哪里请求。

在 REST API 中,每个资源——每一条数据——都有自己的地址,称为 端点。可以把它想象成餐桌号或菜单上的特定项目。

  • 列出所有用户:GET /users
  • 添加新用户:POST /users
  • 获取特定用户:GET /users/1
GET /users
POST /users
GET /users/1

简洁、可预测。一旦掌握了这种模式,你就可以走进世界上任何 REST API 并感到宾至如归——因为菜单总是一样的。

早晨的手机时光

你醒来后打开了最喜欢的应用。你点了角落里的个人头像。就在你不知情的情况下,手机悄悄向服务器发送了一个 GET /profile 请求。API 收到请求后将其转发给后端,后端检索你的数据,瞬间你的姓名、照片和详细信息就出现在屏幕上。

你没有写任何代码,也没有进行任何配置,你只是一点。

但就在这一次点击背后,REST 完成了它的工作——有序、快速且完全透明。

为什么全世界都认同它

REST 并非偶然成为主流标准。它凭实力赢得了地位。

  • 简单 — 概念易于理解,结构易于遵循。
  • 标准化 — 斯里兰卡的开发者和旧金山的开发者看到同一个 REST API,立刻明白它的功能。
  • 可扩展 — 同样的结构可以支撑从小型创业公司到数百万用户的规模。
  • 灵活 — 前端和后端不需要了解彼此的细节,只需在接口上达成一致。

分离。清晰。有序。

Source:

这扇门打开的意义

一旦你理解了 REST,看到数字世界的方式会悄然改变。

每一个加载你动态信息的应用、每一个接受你订单的网站、每一个记住你偏好的平台——它们都只是把菜单端给你的服务员,在你和一个你永远看不见的厨房之间来回奔波。

当你对这个概念感到自在时,接下来会出现更多的门:

  • GraphQL — 一种不同的菜单,你可以精确挑选想要上盘的内容。
  • WebSockets — 服务员不再等你点菜,而是一有新信息就立即送达。
  • 分布式系统 — 不再只有一个厨房,而是遍布全球的数百个厨房。

但这一切都从这里开始。

有一张菜单。一个服务员。以及对如何下单的清晰自信。

0 浏览
Back to Blog

相关文章

阅读更多 »

第一项目

介绍 我在 Braz Cubas | Cruzeiro do Sul 的系统分析与开发专业第一学期,已经开始动手实践项目……

JS fetch()

什么是 fetch - fetch 是一个内置函数,用于发起网络/HTTP 请求。 - 它返回一个 Promise。 - 该 Promise 解析为一个 Response 对象,表示响应。