RESTFUL: POST、PUT、PATCH
已于 2025年07月04日 09:41 修改
访问次数:0
在 Web 开发中,尤其是基于 REST API 的系统中,POST、PUT 和 PATCH 是三种常用的 HTTP 方法,用于 创建或更新资源。它们的区别主要在于用途、幂等性和数据处理方式。
🔹 1. POST —— 创建资源
- ✅ 用途:创建一个新的资源。
- 🔁 幂等性:不是幂等的。多次执行会创建多个资源。
- 📦 数据要求:通常发送完整的新资源数据。
示例:
POST /users
{
"username": "alice",
"email": "alice@example.com"
}
这个请求创建一个新用户。
🔹 2. PUT —— 更新资源(替换)
- ✅ 用途:完整替换资源(或创建资源,如果不存在)。
- 🔁 幂等性:幂等。多次执行,结果一样。
- 📦 数据要求:应包含整个资源的完整数据(如果字段缺失,缺失的字段可能(按照规范)会被清空/替换/抛出异常)。
示例:
PUT /users/1
{
"username": "alice",
"email": "alice_new@example.com"
}
这个请求会替换 ID 为 1 的用户信息。
🔹 3. PATCH —— 更新资源(局部)
- ✅ 用途:局部更新资源中的部分字段。
- 🔁 幂等性:通常是幂等的(取决于实现)。
- 📦 数据要求:只需提供要修改的字段。
示例:
PATCH /users/1
{
"email": "alice_new@example.com"
}
只更新用户的 email 字段。
✅ 对比总结表
| 方法 | 主要用途 | 是否幂等 | 数据是否必须完整 | 行为描述 |
|---|---|---|---|---|
| POST | 创建资源 | ❌ 否 | ✅ 是 | 添加新资源 |
| PUT | 全量更新/替换 | ✅ 是 | ✅ 是 | 替换资源(或创建) |
| PATCH | 局部更新 | ✅/❌ | ❌ 否 | 修改部分字段 |
💡 使用建议(REST API 设计)
- 创建新资源 → POST /resources
- 更新整个资源 → PUT /resources/:id
- 更新部分资源 → PATCH /resources/:id
评论(0)