title: asp.net core API best practice controller naming routing
body: <p>I need to create a ASPNET Core API in C# and I would like to know what would be the best convention in creating controllers and assigning routing to them.</p>
  
  <p>I have a set of catalogs about 35, example:</p>
  
  <ul>
  <li>Employee Type</li>
  <li>Location</li>
  <li>Status Type</li>
  <li>Region</li>
  <li>Holiday Type</li>
  <li>Leave Type</li>
  <li>Language</li>
  <li>Country</li>
  <li>etc...</li>
  </ul>
  
  <p>And on the other side I have to expose API for saving stuff just like updating patient info, etc.</p>
  
  <p>So one way would be to create 35 different controllers just for the catalogs itself like, <code>EmployeeTypeContoller</code>, <code>LanguageController</code>, <code>CountryController</code>, <code>LeaveTypeController</code>, etc..</p>
  
  <pre><code> [Route("api/[controller]")]
      [ApiController]
      public class [CatalogName]Controller: Controller
  </code></pre>
  
  <p>But I don't think this is right, or on the other hand just create a <code>CatalogController</code> and have all the <code>GET</code> methods about each catalog inside.</p>
  
  <p>If this is the case, then I will need to expose all of them in a path like:</p>
  
  <ul>
  <li>/api/catalog/language </li>
  <li>/api/catalog/country </li>
  <li>/api/catalog/employeetype</li>
  <li>etc..</li>
  </ul>
  
  <p>What path should I follow?</p>