I was wondering what people's opinions are of a RESTful PUT
operation that returns nothing (null) in the response body.
The HTTP specification (RFC 2616) has a number of recommendations that are applicable. Here is my interpretation:
200 OK
for a successful PUT of an update to an
existing resource. No response body needed. (Per Section 9.6, 204 No Content
is even more appropriate.)201 Created
for a successful PUT of a new
resource, with the most specific URI for the new resource returned in the Location header field and any other relevant URIs and metadata of the resource echoed in the response body. (RFC 2616 Section 10.2.2)409 Conflict
for a PUT that is unsuccessful due
to a 3rd-party modification, with a list of differences
between the attempted update and the current resource in the response
body. (RFC 2616 Section 10.4.10)400 Bad Request
for an unsuccessful
PUT, with natural-language text (such as English) in the response body
that explains why the PUT failed. (RFC 2616 Section 10.4)