Diferenças entre ASP .NET MVC e ASP .NET Web API |
Neste artigo eu vou apresentar as principais diferenças entre ASP .NET MVC e ASP .NET Web API. |
Dessa forma,
usando os Controllers MVC, eu também posso retornar dados da mesma forma que
os Controllers da Web API.
Então, qual a diferença entre ASP .NET MVC e ASP .NET Web API ?
Basicamente, um controlador Web API é um controlador MVC, que usa
HttpMessageResponse como tipo base de sua resposta, em vez de
ActionResult.
A principal diferença entre os tipos de projeto é que o tipo de projeto
MVC adiciona coisas específicas da web como
padrão CSS, arquivos JavaScript e outros recursos necessários
para um web site, que não são necessários para uma API.
O MVC é usado para criar sites da web. Neste caso os controladores
normalmente retornam uma view(ou seja, a resposta HTML) para
solicitações do navegador.
As Web APis, por outro lado, são feitas para serem consumidas
por outros aplicativos. Se você deseja permitir que outros aplicativos
acessem seus dados/funcionalidades, você pode criar uma Web API para
facilitar esse acesso. Por exemplo, o
Facebook tem uma API para permitir que desenvolvedores de
aplicações acessem informações sobre os usuários que usam a aplicação.
As Web Apis não tem que ser obrigatoriamente para consumo público. Você
também pode criar uma API para oferecer suporte a seus próprios
aplicativos.
A Microsoft mudou a maneira como eles apresentam os diferentes modelos.
Agora em vez de usar modelos diferentes para tipos de projeto
diferentes, eles incentivam os desenvolvedores para misturar tecnologias
ASP.NET dentro do mesmo projeto conforme necessário.
Nota: Parece que na ASP .NET Core 1.0 (Antiga ASP .NET
5) a Web API será integrada com o tipo de projeto MVC 6 e a
classe ApiController será consolidada em que classe Controller.
Fazendo um apanhado geral podemos montar uma tabela para ajudar a diferençar entre MVC e Web API :
ASP .NET MVC | ASP .NET Web API |
Usada para criar web sites e retornar dados e Views. | Usada para criar serviços sobre HTTP que retornam apenas dados. |
Não suporta auto hospedagem nem negociação de conteúdo; | Ajuda a construir serviços REST sobre o .NET Framework e também suporta a negociação de conteúdo e auto de hospedagem ; |
Retorna apenas os dados no formato JSON usando JsonResult; | Retorna dados em determinado formato como JSON, XML ou qualquer outro baseado o cabeçalho Accept no pedido. |
As Solicitações são mapeadas para o nome das Actions; | As solicitações são mapeadas para as ações com base em verbos HTTP; |
No MVC, estes recursos constam no namespace System.Web.Mvc. (Web API também pode ser usada com Asp.Net como uma camada de serviço.) | É um novo framework e parte do núcleo do framework ASP.NET. O modelo de vinculação, filtros, roteamento e outros recursos MVC existem na Web API e estão no assembly System.Web.Http e são diferentes do MVC. |
Você pode misturar controllers Web API e MVC em um único projeto para manipular as solicitações AJAX avançadas que podem retornar dados em JSON, XML ou qualquer outro formato e criar um serviço HTTP completo. |
Creio que com isso você saberá diferenciar entre ASP .NET MVC e ASP .NET Web API.
Porque Deus enviou o seu Filho ao mundo,
não para que condenasse o mundo, mas para que o mundo fosse salvo por ele.
Quem crê nele não é condenado; mas quem não crê já está condenado, porquanto não
crê no nome do unigênito Filho de Deus.
João 3:17,18
Referências: