返回知识库

数据与服务 · 服务与数据

REST 接口REST

REST 用名词路径表示资源,用 HTTP 方法表示动作,用状态码表示结果。

先认出这扇资源柜,再决定动作写在哪

下面就是 /articles/7 这扇柜。默认已被 DELETE,柜子空、章是 204。再试把动词塞进路径,柜子仍满,200 盖不住「没删干净」。

资源柜204 已取走

/articles/7

DELETE /articles/7

柜子是空的。第 7 篇已经不在集合里。

204 已取走空或满直接长在这扇柜门上。

原因:动词在方法,名词在路径,204 表示柜子已空。下一步:试「POST /deleteArticle」,看柜子为什么还满着。

知识点:REST 把动作、资源和结果分开

柜门上的空满已经演示了核心关系,这里只给可复用的命名。

  • 资源用名词路径:/articles、/articles/7,不把 delete 写进 URL。
  • 动作用 HTTP 方法:GET 取、POST 建、PATCH 改、DELETE 删。
  • 结果用状态码:204 表示已取走且无正文,404 表示这扇柜已经空了。
  • 方法和路径要对齐:PATCH 集合、DELETE 集合通常是 400,不是「差不多就行」。

什么时候用、怎么用

要给一组能被增删改查的资源建模时,用 REST 当接口风格。

  • 信号:同一份东西既要取、又要改、还要删,调用方需要一眼看懂地址。
  • 适用:订单、文章、用户这类名词资源。
  • 不适用:一次要拼很多嵌套字段、或动作很难用 HTTP 方法表达——那时再看 GraphQL 或 RPC。
  • 最短路径:定资源名词 → 选方法 → 看物件是否变 → 用状态码判断下一步。

正反例:同一篇要删掉,只换写法

目标都是去掉第 7 篇文章,只改动作写在方法里还是路径里。

正例DELETE /articles/7 → 204

柜门空了。调用方知道资源已走,再 GET 应是 404。

反例POST /deleteArticle?id=7 → 200

柜子还满着。200 让人以为成功,资源却还在。失败写在柜门上。

快速自测

要把第 7 篇文章删掉,哪一种写法让调用方最容易判断「已经不在了」?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。