Closed
Description
Currently PUT does not completely replace the object. Optional fields will be left alone, and IMO that is a little strange.
This means that PUT only overwrites data that has been provided, and successfully leaves everything else alone (like a PATCH request), but then it gets mad at you if you don't supply required data. I personally think that not supplying an argument for a field in a PUT request should result in the same thing that you would get by not supplying an argument for a field in a POST request (when creating the object), that is: the default value.
This way we it would be clearly defined that PATCH updates all fields supplied and leaves all other fields alone, and PUT updates ALL fields and leaves none alone.