HTTP PATCH请求可以创建资源吗?

时间:2016-12-23 18:52:18

标签: rest http api-design http-patch

如果PATCH请求应用于尚不存在的资源,那么它是否允许创建资源,或者在这种情况下是否需要单独的POST / PUT请求?

i请求将转到资源的网址,例如:i。如果ID为1234的对象在数据库中,我将创建它,否则我将更新它。

PATCH请求并不包含所有字段,这就是我不能使用PATCH /object/1234的原因。

2 个答案:

答案 0 :(得分:4)

RFC 5789指出PATCH应该用于“修改现有的HTTP资源”。为了遵守HTTP标准,最好实现POST / PUT请求。

答案 1 :(得分:1)

虽然服务器可以创建新资源(如Heiko的答案中所述),但建议您仅实施条件PATCH,其中客户端发送If-Unmodified-SinceIf-Match标头,确保修补程序仅应用于客户端认为正在编辑的资源版本。条件PATCH请求排除了编辑非现存资源的想法。如果客户端尝试在没有前提条件的情况下发送请求,则正确的响应是428 Precondition Required。请参阅RFC 6585