我想知道人们对在响应体中不返回任何(null)的RESTful PUT操作有什么看法。


当前回答

空的Request体符合GET请求的原始目的,空的响应体也符合PUT请求的原始目的。

其他回答

如果REST API的后端是一个SQL关系数据库,那么

您应该在每个可以更新的记录中都有RowVersion(以避免丢失更新问题) 您应该总是在PUT之后返回记录的新副本(以获得新的RowVersion)。

如果您不关心丢失的更新,或者您希望强制客户端在PUT之后立即执行GET,那么不要从PUT返回任何东西。

空的Request体符合GET请求的原始目的,空的响应体也符合PUT请求的原始目的。

与这里的大多数答案相反,我实际上认为PUT应该返回更新后的资源(当然除了HTTP代码之外)。

您希望将资源作为PUT操作的响应返回的原因是,当您向服务器发送资源表示时,服务器也可以对该资源应用一些处理,因此客户端希望知道请求成功完成后该资源的样子。(否则它将不得不发出另一个GET请求)。

Http方法“PUT”可能具有不同的Http状态,根据传递的请求- uri的执行状态。下表可能有助于理解-

理想情况下,它将返回一个成功/失败响应。