title: Using HTTP DELETE method to cancel an action in progress
body: <p><strong>Background:</strong></p>
  
  <p>I provide a programming interface for people who wish to place orders using my site. </p>
  
  <p>They can use <code>GET</code> and <code>POST</code> methods on <code>/api/v1/orders</code> to place an order and to view list of all orders placed by them. They can also use the <code>GET</code> metod on <code>/api/v1/orders/&lt;order_id&gt;</code> in order to view specific details of one order.</p>
  
  <p>There is a need to provide a way to cancel an order, however the records themselves need to be kept.</p>
  
  <p>I would like to get feedback from more seasoned developers on whether it would be a sane decision to:</p>
  
  <p><strong>a)</strong> implement the <code>DELETE</code> verb on <code>/api/v1/current_orders/&lt;order_id&gt;</code>, which would delete it from the list of "current" orders (by marking it as cancelled). The downside is that it will make use of a different noun, which may be confusing.</p>
  
  <p><strong>b)</strong> implement the <code>DELETE</code> verb on <code>/api/v1/orders/&lt;order_id&gt;</code> with the same functionality as in a). This is somewhat misleading, as the entity will not really be deleted, and the consumer should be aware of that.</p>
  
  <p><strong>c)</strong> implement the <code>POST</code> verb on <code>/api/v1/cancellations/&lt;order_id&gt;</code> (or <code>POST</code> on <code>/api/v1/cancellations</code> with the order_id in the JSON payload). This seems to be less than ideal because a resource will not be created as a result of that request. However, the consequences of using this endpoint seem to be clearer.</p>
  
  <p><strong>d)</strong> ...?</p>
  
  <p><strong>Question:</strong></p>
  
  <p>I am aware that there is not always a "perfect" solution to designing endpoints for a REST API, but keeping in mind the need for <em>clarity</em> and <em>intuitiveness</em> and with a high regard for <em>best practices</em>, <strong><em>which of the options is "optimal"</em></strong>?</p>