As etapas que eu precisava executar foram:
- Adicione referência a
System.Web.Http.WebHost
.
- Adicione
App_Start\WebApiConfig.cs
(veja o trecho de código abaixo).
- Importar espaço
System.Web.Http
para nome em Global.asax.cs
.
- Chamada
WebApiConfig.Register(GlobalConfiguration.Configuration)
em MvcApplication.Application_Start()
(em arquivo Global.asax.cs
), antes de registrar a rota Aplicação Web padrão como que de outra forma têm precedência.
- Adicione um controlador derivado de
System.Web.Http.ApiController
.
Eu poderia aprender o suficiente com o tutorial (Sua primeira API da Web do ASP.NET) para definir meu controlador de API.
App_Start \ WebApiConfig.cs:
using System.Web.Http;
class WebApiConfig
{
public static void Register(HttpConfiguration configuration)
{
configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
}
}
Global.asax.cs:
using System.Web.Http;
...
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
WebApiConfig.Register(GlobalConfiguration.Configuration);
RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Atualização 10.16.2015:
Como diz o Word, o pacote NuGet Microsoft.AspNet.WebApi deve estar instalado para que o procedimento acima funcione.
System.Net.Http
também, mas, além disso, funcionou como um encanto!ATUALIZAÇÃO 22/11/2013 - este é o pacote WebApi mais recente:
Resposta original (este é um pacote WebApi mais antigo)
Mais detalhes .
fonte
Install-Package Microsoft.AspNet.WebApi
agora. Veja nuget.org/packages/Microsoft.AspNet.WebApiPara adicionar WebAPI no meu projeto MVC 5.
Abra o console do gerenciador de pacotes do NuGet e execute
Adicionar referências a
System.Web.Routing
,System.Web.Net
eSystem.Net.Http
DLLs se não jáClique com o botão direito na pasta controladores> adicionar novo item> web> Adicionar controlador de API da Web
Web.config será modificado de acordo com o VS
Adicione
Application_Start
método, se ainda não existirAdicione a seguinte classe (eu adicionei no arquivo global.asax.cs)
Modifique o método da API da Web de acordo
Reconstruir e testar
Crie uma página html simples
fonte
Assim que você adiciona um "WebApi Controller" na pasta controllers, o Visual Studio cuida das dependências automaticamente;
fonte
Install-Package Microsoft.AspNet.WebApi
2. Adicione um novo item "Web API Controller Class (v2.1)". Resultado: adiciona o controlador da API, mas não mudaApplication_Start
. Com Owin.Você pode instalar a partir do nuget como na imagem abaixo:
Ou, execute a linha de comando abaixo no Package Manager Console:
fonte
Antes de começar a mesclar projetos MVC e API da Web, sugiro ler sobre contras e prós para separá-los como projetos diferentes. Uma coisa muito importante (minha) são os sistemas de autenticação, que são totalmente diferentes.
Se você precisar usar solicitações autenticadas no MVC e na API da Web, lembre-se de que a API da Web é RESTful (não precisa manter a sessão, solicitações HTTP simples etc.), mas o MVC não.
Para observar as diferenças de implementações, basta criar 2 projetos diferentes no Visual Studio 2013 a partir de Modelos: um para MVC e outro para API da Web (não se esqueça de ativar a "Autenticação individual" durante a criação). Você verá muita diferença nos AuthencationControllers.
Então, esteja ciente.
fonte
NOTA: esta é apenas uma abreviação desta resposta acima
Abra o console do gerenciador de pacotes do NuGet e execute
Adicionar referências a
System.Web.Routing
,System.Web.Net
eSystem.Net.Http
DLLs se não jáAdicione a seguinte classe
Adicione
Application_Start
método, se ainda não existir (no arquivo global.asax.cs)Clique com o botão direito na pasta controladores> adicionar novo item> web> Adicionar controlador de API da Web
fonte
A solução acima funciona perfeitamente. Prefiro escolher a opção API da Web ao selecionar o modelo do projeto, como mostra a figura abaixo
Nota: A solução funciona com o Visual Studio 2013 ou superior. A pergunta original foi feita em 2012 e é 2016, portanto, adicionando uma solução Visual Studio 2013 ou superior.
fonte
Eu tive o mesmo problema, a solução foi tão fácil
Clique com o botão direito do mouse em solotion e instale o Microsoft.ASP.NET.WebApi em "Gerenciar pacote Nuget para Sulotion"
boom é isso;)
fonte