title: Why HTTP PATCH request method is not idempotent
body: <p>Its mentioned on <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/PATCH" rel="nofollow noreferrer">HTTP Spec</a> that <code>PATCH</code> is <code>not</code> idempotent.</p>
  
  <p>The basic definition of idempotent is:</p>
  
  <blockquote>
    <p>An idempotent HTTP method is a HTTP method that can be called many
    times without different outcomes</p>
  </blockquote>
  
  <p>So If we make an HTTP call</p>
  
  <pre><code>PATCH /users/1
  {
      "username": "dummyUser"
  }
  </code></pre>
  
  <p>No matter how many times we call above HTTP endpoint, it always implies to update the <code>username</code> of user <code>1</code> to <code>dummyUser</code>. </p>
  
  <p>And that's pretty much same for any <code>PATCH</code> request to update 1 or many attributes of any resource. </p>
  
  <p>Then why does HTTP Spec specify that <code>PATCH</code> is <code>not</code> idempotent?</p>