 <p>The convention for REST is that we use HttpMethods for CRUD operations selection:</p> <ul> <li>GET - Read opeation (list and GetById)</li> <li>POST - Insertion</li> <li><strong>PUT</strong> - Udpating</li> <li>DELETE - Deletion</li> </ul> <p>The detailed description: <a href="http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations" rel="nofollow">Creating a Web API that Supports CRUD Operations</a> </p> <p>And then with a very default Routing setting (see more here: <a href="http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-in-aspnet-web-api" rel="nofollow">Routing in ASP.NET Web API</a> )</p> <pre><code>routes.MapHttpRoute( name: "API Default", routeTemplate: "api/{controller}/{id}", // the Director as controller defaults: new { id = RouteParameter.Optional } ); </code></pre> <p>So, we've just instructed the Web API infrastructure, that if there is method:</p> <pre><code>[HttpPost] public void InsertDirector(Director director) ... </code></pre> <p>It will be used for creation, and the HttpMethod used must be <code>POST</code> and </p> <pre><code>//[HttpPost] [HttpPut] // !! Attention, here is the difference public void UpdateDirector(Director director)... </code></pre> <p>the <code>UpdateDirector</code> will be called if the HttpMethod is <code>PUT</code></p> <p><em>NOTE: because during the update we do have the ID of existing product, the Update method should look like:</em></p> <pre><code>// the id parameter is a convention as well, // to be sure that we are updating existing item // so this would be better public void UpdateDirector(int id, Director director)... </code></pre>