例如,URI 上有资源:/api/items/123
GET 请求的响应正文是{"Id": "123", "Foo": "foo", "Bar": "bar"}
我发送 PUT 请求。它的主体是{"Bar": "newBarValue"}
如果是此请求正文,是否应删除属性Id和Foo ?还是应该修改Bar属性?或者服务器应该返回错误代码?
PUT 和 GET 应该使用全部资源。
如果您只想更新资源(并且只是发送 Bar),那么您也可以使用 PATCH http 动词。
restful 动词列表: https ://restful-api-design.readthedocs.org/en/latest/methods.html
是的,PUT
应该提供资源的全新表示。所以应该在服务器上删除Id
。Foo
如果你只是想更新 Bar
,POST
{"Bar": "newBarValue"}
那就去吧。
在 REST 中,这只是一个约定。