title: REST - Modify Part of Resource - PUT or POST
body: <p>I'm seeing a good bit of hand-waving on the subject of how to update only part of a resource (eg. status indicator) using REST.</p>
  
  <p>The options seem to be:</p>
  
  <ol>
  <li><p>Complain that HTTP doesn't have a PATCH or MODIFY command.  However, the accepted answer on <a href="https://stackoverflow.com/questions/1672025/http-modify-verb-for-rest">HTTP MODIFY verb for REST?</a> does a good job of showing why that's not as good an idea as it might seem.</p></li>
  <li><p>Use POST with parameters and identify a method (eg. a parameter named "action").  Some suggestions are to specify an X-HTTP-Method-Override header with a self-defined method name.  That seems to lead to the ugliness of switching within the implementation based on what you're trying to do, and to be open to the criticism of not being a particularly RESTful way to use POST.  In fact, taking this approach starts to feel like an RPC-type interface.</p></li>
  <li><p>Use PUT to over-write a sub-resource of the resource which represents the specific attribute(s) to update.  In fact, this is effectively an over-write of the sub-resource, which seems in line with the spirit of PUT.</p></li>
  </ol>
  
  <p>At this point, I see #3 as the most reasonable option.  </p>
  
  <p>Is this a best practice or an anti-pattern?  Are there other options?</p>