title: AspNet core web Api usage of ApiControllerAttribute
body: <p>When I create a new controller in the API project, it generates a controller class with <code>[ApiController]</code> attribute, like this:</p>
  
  <pre><code>[ApiController]
  public class TestController : ControllerBase
  {
   //implementation
  }
  </code></pre>
  
  <p>I've seen a few webapi projects where usage of this attribute is omitted.
  Microsoft documentation <a href="https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.apicontrollerattribute?view=aspnetcore-2.1" rel="noreferrer">here</a> says:</p>
  
  <blockquote>
    <p>Indicates that a type and all derived types are used to serve HTTP API
    responses. The presence of this attribute can be used to target
    conventions, filters and other behaviors based on the purpose of the
    controller.</p>
  </blockquote>
  
  <p>But still, I don't get the idea.
  Can someone explain what is the purpose of this attribute with the real-life example?</p>