2012-09-13 17 views
11

Después de una gran investigación, estoy empezando a mejorar nuestra pila de servidores de servicios con un punto de entrada webAPI. Basado en this thread, y especialmente en la última publicación de un miembro de la placa Digerati, estamos implementando servicios webAPI como fachada en nuestra capa de aplicaciones WCF. (Nuestros servicios WCF son solo fachadas en nuestra capa de Aplicación donde vive todo el comportamiento)Archivos mínimos necesarios para implementar el lado del servidor webAPI

Mi pregunta es esta. Descargué MVC 4 y creé un nuevo proyecto WebAPI en mi solución de servicio. ¡Pero vaya que hubo un montón de basura que creó en mi proyecto que simplemente no voy a necesitar! Por ejemplo, todos los archivos de imagen, el controlador doméstico, vistas y modelos, etc.

Así que al desglosar esto para ser solo un proyecto de servicio, ¿cuáles son los archivos mínimos que necesito para construir un proyecto de servicio funcional? Nuestra intención es publicar ambos tipos de servicio (WCF y webAPI) uno al lado del otro en el mismo servidor. Cada llamada de servicio realiza la misma llamada de servicio idéntica y devuelve el DTO específico para la solicitud. Hasta ahora parece App_Start, Controladores y las entradas Glabal.asax/web.config. ¡Definitivamente no necesito vistas, modelos o imágenes!

Cualquier comentario sobre lo que otros han hecho para hacer un despliegue de servicio puro sería muy bienvenido aquí.

Respuesta

18

Mismo problema aquí. He encontrado que article de Shawn Kendrot explicando cómo crear un proyecto mínimo de API web. Fue escrito para la versión beta de la API web, pero parece ser aún válido.

  1. Cree un proyecto vacío de ASP.NET.
  2. agregar una referencia a System.Web.Http y System.Web.Http.WebHost (versión 4.0.0.0)
  3. añadir un archivo Global.asax
  4. Registrar la ruta en el Global.Application_Start. Algo así como:

    protected void Application_Start(object sender, EventArgs e) 
    { 
        GlobalConfiguration.Configuration.Routes.MapHttpRoute(
         name: "DefaultApi", 
         routeTemplate: "api/{controller}/{id}", 
         defaults: new { id = RouteParameter.Optional }); 
    } 
    
  5. Agregar un controlador

    public class SampleController : ApiController 
    { 
        public string Get(int id) 
        { 
        return "Hello"; 
        } 
    } 
    
    1. Ejecutar el proyecto a nivel local con la URL /api/sample/123 y disfrutar del resultado:

enter image description here

+5

1 Esto debería estar en algún lugar en la documentación oficial! –

+1

LOL hay algo que debería estar en la documentación oficial. +1 a tu comentario. :) –

3

FYI. Me he dado cuenta que he tenido que hacer referencia a dos .dlls más:

  • System.Net.Http
  • Newtonsoft.Json
Cuestiones relacionadas