RESTFUL: POST、PUT、PATCH

在 Web 开发中,尤其是基于 REST API 的系统中,POSTPUTPATCH 是三种常用的 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)