04 · BUSINESS BACKENDP013 MIN
REST API 资源设计
用稳定资源、HTTP 语义和明确命令表达企业业务接口。
MENTAL MODELREST API DESIGN
01Request Contract
→02Authenticate
→03Authorize
→04Domain Action
→05HTTP Response
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
Resource
可被稳定标识和操作的业务对象,例如 /orders/{id}。
HTTP Method
GET 读取,POST 创建/命令,PUT 完整替换,PATCH 部分修改,DELETE 删除语义。
Status Code
用 2xx、4xx、5xx 区分成功、客户端可处理问题和服务端故障。
确认订单该用 PATCH status 吗
客户端可 PATCH {status:"SHIPPED"},绕过库存、权限和物流校验。
- 01
普通字段仍用 PATCH /orders/:id。
- 02
确认与取消建 POST /orders/:id/confirm、/cancel 命令。
- 03
命令由领域服务验证合法迁移。
API 契约表达业务意图,敏感状态不再是任意字段。
马上动手
- 为 Quote 转 Order 设计路径、请求与响应。
- 区分 400、401、403、404、409、422。
常见坑
- 接口全是 POST /doSomething
- 错误都返回 200
- 数据库字段直接暴露成公共 API
05 · KNOWLEDGE CHECK什么时候业务命令比通用 PATCH 更清晰?查看答案⌄
答案
当动作有专门权限、前置条件、副作用或审计语义时,例如 approve、cancel、ship;命令接口能显式承载这些规则。