Should a RESTful ‘PUT’ operation return something….

The HTTP specification (RFC 2616) has a number of recommendations that are applicable. Here is my interpretation:

  • HTTP status code 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.)
  • HTTP status code 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)
  • HTTP status code 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)
  • HTTP status code 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)

Leave a Comment

tech