title: Restful API: implement version handling
body: <p>I have deference version of API in the same domain and i want manage it by putting version number in url like below</p>
  
  <pre><code>mydomain.com/api/v1/user/getall
  mydomain.com/api/v1/user/add
  
  mydomain.com/api/v2/user/getall
  mydomain.com/api/v2/user/add
  </code></pre>
  
  <p>imagine this scenario:
  get user in both version has same functionality but add changed in V2.
  Now i wanna implement versioning, i found tow approach for this aim.</p>
  
  <ol>
  <li>use V1 and V2 in routing and manage versioning in application (u.e : <a href="https://github.com/Sebazzz/SDammann.WebApi.Versioning" rel="nofollow">SDammann WebApi Versioning</a> )</li>
  <li>Manage versioning by source controllers and web servers ( for each version exists a branch and in case of ASP.net(IIS) create sub-application for each version)</li>
  </ol>
  
  <p>In first approach i think we have to copy controller s and action, so if found a bug for example in get user action we must change it in both action (<strong>redundancy</strong>)</p>
  
  <p>in second approach if happened some bug we must checkout to old branch, fix it and merge it by new version branch.</p>
  
  <p>Dose exists any better approach for manage and implementation of API versioning ?</p>