2012-09-13 9 views
11

Quindi, dopo molte ricerche, sto iniziando a migliorare lo stack del server dei servizi con un punto di accesso WebAPI. Basato su this thread, e in particolare l'ultimo post di un membro della commissione Digerati, stiamo implementando i servizi webAPI come facciata nel nostro livello di applicazione WCF. (I nostri servizi WCF sono solo facciate nel nostro livello di applicazione in cui vive tutto il comportamento)File minimi necessari per distribuire lato server webAPI

La mia domanda è questa. Ho scaricato MVC 4 e creato un nuovo progetto WebAPI nella mia soluzione di servizio. Ma wow c'era una tonnellata di cazzate che ha creato nel mio progetto che non ho proprio bisogno! Ad esempio, tutti i file di immagine, il controller di casa, le viste e i modelli, ecc.

Quindi, eliminando tutto ciò per essere solo un progetto di servizio, quali sono i file minimi di cui ho bisogno per costruire un progetto di servizio funzionale? Il nostro intento è pubblicare entrambi i tipi di servizio (WCF e webAPI) nello stesso server .. ogni chiamata di servizio fa la stessa chiamata di servizio identica e restituisce il DTO specifico per la richiesta. Finora sembra App_Start, Controllers e le voci Glabal.asax/web.config. Non ho assolutamente bisogno di viste, modelli o immagini !!!

Qualsiasi input su ciò che altri hanno fatto per realizzare un puro servizio di distribuzione sarebbe di grande aiuto qui.

risposta

18

Lo stesso problema qui. Ho trovato che article da Shawn Kendrot che spiega come creare un progetto API Web minimale. È stato scritto per la versione beta di Web API ma sembra essere ancora valido.

  1. creare un progetto ASP.NET vuoto.
  2. Aggiungere un riferimento alla System.Web.Http e System.Web.Http.WebHost (versione 4.0.0.0)
  3. aggiungere un file
  4. Global.asax Registra un itinerario nel Global.Application_Start. Qualcosa di simile:

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

    public class SampleController : ApiController 
    { 
        public string Get(int id) 
        { 
        return "Hello"; 
        } 
    } 
    
    1. Eseguire il progetto a livello locale con l'URL /api/sample/123 e godersi il risultato:

enter image description here

+5

+1 Questo in realtà dovrebbe essere da qualche parte nella documentazione ufficiale! –

+1

LOL c'è un punto che dovrebbe essere nella documentazione ufficiale. +1 al tuo commento. :) –

3

FYI. Ho scoperto che ho dovuto fare riferimento a due DLL:

  • System.Net.Http
  • Newtonsoft.Json