例如,URI上有资源:/api/items/123
GET请求的响应正文为{"Id": "123", "Foo": "foo", "Bar": "bar"}
我发送PUT请求。它的主体是{"Bar": "newBarValue"}
如果是此请求正文,是否应删除 Id 和 Foo 属性?或者只是修改 Bar 属性?或者服务器应该返回错误代码?
答案 0 :(得分:4)
PUT和GET应该使用完整的资源。
如果您只想更新资源(并且只发送Bar),那么您也可以使用PATCH http动词。
一些宁静的动词: https://restful-api-design.readthedocs.org/en/latest/methods.html
答案 1 :(得分:0)
是的,PUT
应该提供资源的完整新表示。因此,应在服务器上删除Id
和Foo
。
如果您只想更新 Bar
,POST
{"Bar": "newBarValue"}
就可以了。
通常在REST中,这只是一种惯例。