Os controladores de API da Web podem ser criados e hospedados em qualquer aplicativo ASP.NET, não apenas nos aplicativos MVC. Portanto, um motivo óbvio para criar uma API da Web é se você não possui um front-end MVC (por exemplo, serviços da Web RESTful clássicos hospedados por sua empresa / organização).
Os MVC Controllers geralmente contam com o MVC Framework, se você observar os modelos padrão e a maior parte do trabalho realizado pela comunidade e seus colegas, perceberá que quase todos os MVC Controllers são implementados com a Visualização em mente.
Pessoalmente, uso Controladores MVC quando pretendo responder com uma View () e usarei uma API da Web para qualquer coisa que não dependa de uma exibição específica.
Existem advertências, é claro, mas de um modo geral, se você não exige o comportamento de Model Binding do MVC, seu serviço é centrado em dados e as operações são centradas em dados (por exemplo, operações CRUD), é provável que você queira um 'Web API Controller 'em vez de um' Model-View Controller '. Por outro lado, se suas operações são centradas na visualização (por exemplo, entregar uma página de administração do usuário ao usuário) ou você precisa da Ligação de modelo do MVC para gerar 'parciais de ajax' (muito improvável), será necessário um Controlador MVC.
Pessoalmente, uso controladores de API da Web para direcionar clientes RESTful baseados em JSON, uso controladores MVC para lidar com o roteamento básico do navegador e a entrega do SPA.