Básicamente, un Web API
controlador es un MVC
controlador, que utiliza HttpMessageResponse
como tipo base de su respuesta, en lugar de ActionResponse
. Son iguales en la mayoría de los otros aspectos. La principal diferencia entre los tipos de proyecto es que el MVC Application
tipo de proyecto agrega elementos específicos de la web como valores predeterminados CSS
, JavaScript
archivos y otros recursos necesarios para un sitio web, que no son necesarios para una API.
MVC se utiliza para crear sitios web. En este caso, Controllers
generalmente se devuelve un View
(es decir, una respuesta HTML) a las solicitudes del navegador. Las API web, por otro lado, generalmente están hechas para ser consumidas por otras aplicaciones. Si desea permitir que otras aplicaciones accedan a sus datos / funcionalidad, puede crear una API web para facilitar este acceso. Por ejemplo, Facebook tiene una API para permitir a los desarrolladores de aplicaciones acceder a información sobre los usuarios que usan la aplicación. Las API web no tienen que ser para consumo público. También puede crear una API para admitir sus propias aplicaciones. Por ejemplo, creamos una API web para admitir la funcionalidad AJAX de nuestro sitio web MVC.
Microsoft cambió la forma en que presentan las diferentes plantillas. Ahora, en lugar de usar diferentes plantillas para diferentes tipos de proyectos, alientan a los desarrolladores a mezclar tecnologías ASP.NET dentro del mismo proyecto según sea necesario. Microsoft llama a esto vNext
.
ACTUALIZACIÓN: Para ASP.NET Core, la API web se ha integrado en el tipo de proyecto MVC 6 y la ApiController
clase se consolida en la Controller
clase. Más detalles en: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6