222 votos

Cómo añadir la API de Web existente ASP.NET MVC 4 proyecto de Aplicación Web?

Quiero añadir un ASP.NET API Web para un ASP.NET MVC 4 proyecto de Aplicación Web, desarrollada en Visual Studio 2012. Que pasos tengo que realizar para agregar una Web en funcionamiento de la API para el proyecto? Soy consciente de que necesito un controlador de derivados de ApiController, pero eso es todo lo que sé.

Quisiera saber si me la necesidad de proporcionar más detalles.

300voto

aknuds1 Puntos 9918

Los pasos que se necesitan para realizar fueron:

  1. Agregar una referencia al System.Web.Http.WebHost.
  2. Agregue App_Start\WebApiConfig.cs (véase el siguiente fragmento de código).
  3. Import namespace System.Web.Http en Global.asax.cs.
  4. Llame WebApiConfig.Register(GlobalConfiguration.Configuration) en MvcApplication.Application_Start() (en el archivo Global.asax.cs), antes de registrar el valor predeterminado de la Aplicación Web de la ruta que de otra forma tendrían prioridad.
  5. Agregar un controlador de derivados de System.Web.Http.ApiController.

Entonces yo podría aprender lo suficiente de el tutorial (El Primero ASP.NET Web API) para definir mi API de controlador.

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);
}

48voto

CDeutsch Puntos 1643

ACTUALIZACIÓN 11/22/2013 - esta es la última WebApi paquete:

Install-Package Microsoft.AspNet.WebApi

Respuesta Original (esta es una antigua WebApi paquete)

Install-Package AspNetWebApi

Más detalles: http://wildermuth.com/2012/2/22/webapi_for_the_mvc_guy

15voto

Teoman shipahi Puntos 7988

Tan pronto como se añade un "WebApi Controlador" en virtud de controladores de carpeta, Visual Studio se encarga de las dependencias automáticamente;

Visual Studio ha añadido que el conjunto completo de las dependencias de ASP.NET Web La API de 2 a proyecto 'MyTestProject'.

El Global.asax.cs archivo en el proyecto requiera de cambios adicionales para habilitar ASP.NET Web de la API.

  1. Agregar el espacio de nombres siguientes referencias:

    el uso del Sistema.De la Web.Http; el uso del Sistema.De la Web.Enrutamiento;

  2. Si el código ya no definir un método Application_Start, agregue el método siguiente:

    protected void Application_Start() { }

  3. Agregue las siguientes líneas al principio del método Application_Start:

    GlobalConfiguration.Configurar(WebApiConfig.Registrarse);

13voto

Cuong Le Puntos 29324

A la hora de crear ASP.NET MVC 4 proyecto de Aplicación Web, incluso vacía proyecto, el paquete Microsoft ASP.NET Web Api se agrega de forma predeterminada.

Así que para el primer bebé de paso, acaba de crear una de las pruebas de la api de controlador que se hereda de ApiController de espacio de nombres System.Web.Http y, a continuación, aprender tutorial a seguir.

11voto

OptikLab Puntos 93

Antes de iniciar la fusión de MVC y de la Web de la API de proyectos sugeriría leer acerca de los pros y los contras para separar a estos como de los diferentes proyectos. Una cosa muy importante (mis) sistemas de autenticación, que es totalmente diferente.

SI necesita utilizar solicitudes autenticadas en tanto MVC y la API de Web, es necesario recordar que la Web API es (no es necesario para mantener la sesión, simples peticiones HTTP, etc.), pero MVC no es.

Buscar en las diferencias de las implementaciones de simplemente crear 2 diferentes proyectos en Visual Studio 2013 a partir de Plantillas: una para MVC y uno para la API de Web (no olvides activar la Autenticación Individual" durante la creación). Usted verá un montón de diferencia en AuthencationControllers.

Por lo tanto, ser conscientes.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X