Los controladores de API web se pueden crear y alojar en cualquier aplicación ASP.NET, no solo en aplicaciones MVC. Por lo tanto, una razón obvia para crear una API web es si no tiene un front-end MVC (por ejemplo, servicios web RESTful clásicos alojados por su empresa / organización).
Los Controladores MVC generalmente se basan en el Marco MVC, si observa las plantillas predeterminadas y la mayoría del trabajo realizado por la comunidad y sus pares, notará que casi todos los Controladores MVC se implementan teniendo en cuenta la Vista.
Personalmente, uso MVC Controllers cuando tengo la intención de responder con una Vista (), y usaré una API web para cualquier cosa que no dependa de una vista en particular.
Existen advertencias, por supuesto, pero en general, si no requiere el comportamiento de enlace de modelo de MVC, su servicio está centrado en los datos y las operaciones están centradas en los datos (por ejemplo, operaciones CRUD), entonces es probable que desee un controlador de API web 'en lugar de un' Controlador de vista de modelo '. Por el contrario, si sus operaciones están centradas en la vista (por ejemplo, entregar una página de administración de usuario al usuario), o si necesita el enlace de modelo de MVC para generar 'parciales ajax' (muy poco probable), entonces querrá un controlador MVC.
Personalmente, uso controladores de API web para manejar clientes RESTful basados en JSON, uso controladores MVC para manejar el enrutamiento básico del navegador y la entrega del SPA.