标签: rest http api-design http-patch
如果PATCH请求应用于尚不存在的资源,那么它是否允许创建资源,或者在这种情况下是否需要单独的POST / PUT请求?
i请求将转到资源的网址,例如:i。如果ID为1234的对象在数据库中,我将创建它,否则我将更新它。
i
PATCH请求并不包含所有字段,这就是我不能使用PATCH /object/1234的原因。
PATCH
PATCH /object/1234
答案 0 :(得分:4)
RFC 5789指出PATCH应该用于“修改现有的HTTP资源”。为了遵守HTTP标准,最好实现POST / PUT请求。
答案 1 :(得分:1)
虽然服务器可以创建新资源(如Heiko的答案中所述),但建议您仅实施条件PATCH,其中客户端发送If-Unmodified-Since或If-Match标头,确保修补程序仅应用于客户端认为正在编辑的资源版本。条件PATCH请求排除了编辑非现存资源的想法。如果客户端尝试在没有前提条件的情况下发送请求,则正确的响应是428 Precondition Required。请参阅RFC 6585。
If-Unmodified-Since
If-Match