API Design: PUT vs PATCH

I was writing an API and couldn't decide which HTTP verb to use to update an object. So this is just a quick post to clarify the difference as I understand it. In my example the object will be person.

A person consists of;

"person" : { "age" : 22, "name" : "joe" }


Use this when you are going to send the complete object and all its properties in the request, so if we have a person object above, and you are wanting to change the age using a PUT, you would still send all the other properties with their existing values.
"person" : { "age" : 24, "name" : "joe" }


This is used when you want to update specific values or properties of an object. In the example above, to change the age of a person with a PATCH request you only send the age property with its new value.
"person" : { "age" : 12 }

Of course there is no real enforcement of this principle, and even using PUT/PATCH for any sort of update is still closer to standard RESTful practice, but if you want to keep things elegant and in-keeping with best practice this should help.