I have a list of users that are being assigned to a certain office. I use checkboxes to select each user and when the client is done, a PUT is performed:

PUT offices/:id

users[0] : 14
users[1] : 12
users[2] : 25

The problem occurs when the server has users saved, but the client decides to clear the board. So he deselects the users and hits save. The problem in this case is that the Ajax request is not sending an empty users[0] : parameter, because each checkbox is unchecked.

In the case when a parameter is not included at all, should PUT overwrite that it and set it to null or should the request include the empty parameter somehow?

  • or error out and not do anything Commented Jul 24, 2014 at 19:33

1 Answer 1


The answer is in the RFC describing the PATCH method:

In a PUT request, the enclosed entity is considered to be a modified version of the resource stored on the origin server, and the client is requesting that the stored version be replaced. With PATCH, however, the enclosed entity contains a set of instructions describing how a resource currently residing on the origin server should be modified to produce a new version.

Hence, PUT requires you to submit the complete representation of the resource, whereas PATCH may take an incomplete version, or simply some commands on how to apply the patch. This depends on your specific API implementation.

So in your case you actually want to use PATCH, and not PUT.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.