Basicamente, um Web API
controlador é um MVC
controlador, que usa HttpMessageResponse
como tipo base de sua resposta, em vez de ActionResponse
. Eles são os mesmos na maioria dos outros aspectos. A principal diferença entre os tipos de projeto é que o MVC Application
tipo de projeto adiciona itens específicos da Web, como padrão CSS
, JavaScript
arquivos e outros recursos necessários para um site, que não são necessários para uma API.
O MVC é usado para criar sites. Nesse caso, Controllers
geralmente retorne uma View
(ou seja, resposta HTML) às solicitações do navegador. As APIs da Web, por outro lado, geralmente são feitas para serem consumidas por outros aplicativos. Se você deseja permitir que outros aplicativos acessem seus dados / funcionalidade, é possível criar uma API da Web para facilitar esse acesso. Por exemplo, o Facebook possui uma API para permitir que os desenvolvedores de aplicativos acessem informações sobre usuários que usam o aplicativo. As APIs da Web não precisam ser para consumo público. Você também pode criar uma API para suportar seus próprios aplicativos. Por exemplo, criamos uma API da Web para suportar a funcionalidade AJAX do nosso site MVC.
A Microsoft mudou a maneira como eles apresentam os diferentes modelos. Agora, em vez de usar modelos diferentes para diferentes tipos de projeto, eles incentivam os desenvolvedores a misturar as tecnologias do ASP.NET dentro do mesmo projeto, conforme necessário. A Microsoft chama isso vNext
.
ATUALIZAÇÃO: Para o ASP.NET Core, a API da Web foi integrada ao tipo de projeto MVC 6 e a ApiController
classe é consolidada na Controller
classe. Mais detalhes em: https://wildermuth.com/2016/05/10/Writing-API-Controllers-in-ASP-NET-MVC-6