【发布时间】:2021-02-05 10:25:13
【问题描述】:
我不确定是使用 POST 和 PATCH 的组合还是只为我的用例提供 PUT 请求更好。
如果我正在创建以下资源:
POST /customer
firstname: John
lastname: Smith
email: j.smith@web.com
(response -> customer created with id '1')
之后是否可以使用 PATCH 请求来更新一个现有值(在本例中为电子邮件)以及向资源添加新字段和值(出生日期)?
PATCH /customer/1
firstname: John
lastname: Smith
email: johnny.smith@gmail.com
dateofbirth: 1970-01-01
在这种情况下,出生日期已经是 swagger 定义的一部分。
【问题讨论】:
-
简而言之,是的。虽然 PATCH 可能不是你想象的那样。它与软件开发中使用的传统补丁非常相似,其中补丁文档包含目标机器必须完全应用的指令,以便将资源更改为所需的结果。 Suggested reading
-
您的问题听起来好像您正在发送带有请求标头字段的数据。这不是一个好主意。
-
@JulianReschke。数据将在体内。这只是一个非常简化的表示
标签: rest http api-design http-patch