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


当前回答

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

其他回答

HTTP响应的头和正文之间是有区别的。PUT永远不应该返回正文,但必须在报头中返回响应代码。如果成功就选择200,如果不成功就选择4xx。没有空返回码这样的东西。你为什么想做这个?

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

“Created”的Http响应代码201以及指向客户端可以找到新创建资源的“Location”标头。

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

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

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

HTTP/1.1规范(第9.6节)讨论了适当的响应/错误代码。但是,它不处理响应内容。

你想要什么?一个简单的HTTP响应代码(200等)对我来说似乎是直接而明确的。