返回知识库数据与服务 · 服务与数据
REST 接口REST
REST 用名词路径表示资源,用 HTTP 方法表示动作,用状态码表示结果。
先认出这扇资源柜,再决定动作写在哪
下面就是 /articles/7 这扇柜。默认已被 DELETE,柜子空、章是 204。再试把动词塞进路径,柜子仍满,200 盖不住「没删干净」。
/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 篇文章删掉,哪一种写法让调用方最容易判断「已经不在了」?
继续查证
术语的技术定义和行为以这些一手或权威资料为准。