Los pasos que necesitaba realizar eran:
- Añadir referencia a
System.Web.Http.WebHost
.
- Agregar
App_Start\WebApiConfig.cs
(ver fragmento de código a continuación).
- Importar espacio
System.Web.Http
de nombres en Global.asax.cs
.
- Llamar
WebApiConfig.Register(GlobalConfiguration.Configuration)
en MvcApplication.Application_Start()
(en archivo Global.asax.cs
), antes de registrar la ruta aplicación web por defecto lo que llevaría a tener prioridad.
- Agregar un controlador derivado de
System.Web.Http.ApiController
.
Entonces podría aprender lo suficiente del tutorial (Su primera API web ASP.NET) para definir mi controlador 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);
}
Actualización 10.16.2015:
Word lo tiene, el paquete NuGet Microsoft.AspNet.WebApi debe estar instalado para que funcione lo anterior.
System.Net.Http
, pero aparte de eso, ¡funcionó de maravilla!ACTUALIZACIÓN 22/11/2013: este es el último paquete de WebApi:
Respuesta original (este es un paquete anterior de WebApi)
Más detalles .
fuente
Install-Package Microsoft.AspNet.WebApi
ahora. Ver nuget.org/packages/Microsoft.AspNet.WebApiPara agregar WebAPI en mi proyecto MVC 5.
Abra la consola del administrador de paquetes NuGet y ejecute
Añadir referencias
System.Web.Routing
,System.Web.Net
ySystem.Net.Http
dlls si no hay yaHaga clic derecho en la carpeta de controladores> agregar nuevo elemento> web> Agregar controlador API web
Web.config será modificado en consecuencia por VS
Agregar
Application_Start
método si no existeAgregue la siguiente clase (agregué en el archivo global.asax.cs)
Modificar el método de la API web en consecuencia
Reconstruir y probar
Crea una página html simple
fuente
Tan pronto como agregue un "Controlador WebApi" en la carpeta de controladores, Visual Studio se ocupa de las dependencias automáticamente;
fuente
Install-Package Microsoft.AspNet.WebApi
2. Agregue el nuevo elemento "Web API Controller Class (v2.1)". Resultado: agrega el controlador api pero no cambiaApplication_Start
. Con OwinPuede instalar desde nuget como la imagen de abajo:
O ejecute la siguiente línea de comando en la consola de Package Manager:
fuente
Antes de comenzar a fusionar proyectos de MVC y API web, le sugiero que lea sobre los contras y los profesionales para separarlos como proyectos diferentes. Una cosa muy importante (la mía) son los sistemas de autenticación, que son totalmente diferentes.
SI necesita utilizar solicitudes autenticadas en MVC y API web, debe recordar que la API web es RESTful (no necesita mantener sesión, solicitudes HTTP simples, etc.), pero MVC no.
Para ver las diferencias de las implementaciones, simplemente cree 2 proyectos diferentes en Visual Studio 2013 a partir de plantillas: uno para MVC y otro para API web (no olvide activar "Autenticación individual" durante la creación). Verá mucha diferencia en AuthencationControllers.
Entonces, ten cuidado.
fuente
NOTA: esta es solo una abreviatura de esta respuesta anterior
Abra la consola del administrador de paquetes NuGet y ejecute
Agregar referencias a
System.Web.Routing
,System.Web.Net
ySystem.Net.Http
dlls si no hay yaAgregue la siguiente clase
Añadir
Application_Start
método si aún no está allí (en el archivo global.asax.cs)Haga clic derecho en la carpeta de controladores> agregar nuevo elemento> web> Agregar controlador API web
fuente
La solución anterior funciona perfectamente. Prefiero elegir la opción de API web al seleccionar la plantilla del proyecto como se muestra en la imagen a continuación
Nota: La solución funciona con Visual Studio 2013 o superior. La pregunta original se hizo en 2012 y es 2016, por lo tanto, agregando una solución Visual Studio 2013 o superior.
fuente
Tuve el mismo problema, la solución fue muy fácil
Haga clic con el botón derecho en Solotion e instale Microsoft.ASP.NET.WebApi desde "Administrar paquete Nuget para Sulotion"
boom eso es todo;)
fuente