REST(Representational State Transfer)是一种架构风格,常用于设计 HTTP API。 实践中常被简化为「用 URL 表示资源,用 HTTP 方法表示操作」,但严格 REST 还涉及超媒体、无状态等约束。
1. 资源与 URI
「资源」可以是用户、订单、文章等概念实体;URI 用来标识资源。
例如 /users/42 指向编号 42 的用户表示(representation)。
2. HTTP 方法(常见映射)
- GET:获取资源,应尽可能无副作用与可缓存语义(视实现)。
- POST:常用于创建子资源或触发处理流程。
- PUT / PATCH:整体或部分替换/更新资源。
- DELETE:删除资源。
实际项目可能因历史原因偏离纯 REST;前后端应以 OpenAPI 等契约为准。
3. 状态码与错误体
一致地使用状态码与结构化错误体,有助于客户端与监控解析。
幂等性(重复请求是否安全)在设计 POST 与支付类接口时尤为重要。
GraphQL、gRPC 等是不同范式;选型取决于团队、缓存与网关生态,并无绝对优劣。