PUT通常如何与REST一起使用

时间:2015-03-26 09:29:04

标签: rest

API通常要求资源的所有属性都在PUT请求的主体中,或者它们是否可选,以便更新属性的子集。

例如

resource = { "id": 1, "title": "Big Book", "desc": "...", "user_id": 2 }

我不希望user_idid可更新,因此我只需在PUT中加入titledesc。我是否应该要求所有属性都包含在请求中或仅允许子集?

2 个答案:

答案 0 :(得分:1)

使用REST,使用方法PUT更新资源的完整表示(即所有内容)。因此,如果您只发送属性的子集,则应将缺少的属性设置为null。如果您只想更新属性的子集,则应使用方法PATCH

希望它可以帮到你, 亨利

答案 1 :(得分:0)

我可能只使用一个子集,只接收您要更新的属性:

PUT /book/1

并在体内

{ "title": "Big Book", "desc": "..." }

但您显然还需要验证参数并避免更新id(即使已通过)!

编辑:

正如@thierry templier所说,这是一种务实的方法,因为对于REST规范,您应该使用PATCH进行部分更新,并使用PUT进行完整更新。

如果您采用这种方式,请记住记录您的API。