2012-08-08 21 views
6

Sono nuovo ad ASP.Net MVC e ASP.Net web api.Host web API ASP.Net e consumo da un'altra applicazione MVC

Ho lavorato sui servizi Web e li ho presi in considerazione.

Ma non sono sicuro di come ospitare ASP.Net Web API e consumare lo stesso da un'altra applicazione ASP.Net MVC. Ho trovato alcuni campioni in cui le persone utilizzano l'API dello stesso progetto. Nel mondo reale dubito fortemente che l'utilizzo sia limitato a un progetto.

Può qualche corpo pubblicare alcuni esempi o collegamenti che possono spiegare lo stesso?

risposta

5

L'hosting di API Web ASP.NET in un'applicazione Web MVC è perfetto se si utilizza principalmente l'API per effettuare chiamate di tipo AJAX dal proprio client Web. Avere l'API e l'applicazione web nello stesso progetto elimina i problemi con le chiamate Ajax tra domini, che richiede JSONP. Ma l'API Web ASP.NET può facilmente supportare JSONP se necessario con un formattatore personalizzato come JsonMediaTypeFormatter disponibile da WebApiContrib.

L'API Web ASP.NET semplifica lo sviluppo delle API REST. Usi le stesse convenzioni dello sviluppo di un controller in MVC. Per crearlo separatamente dalla tua applicazione web basta creare un progetto MVC 4 e creare i tuoi controller usando un ApiController invece del controller standard per il rendering delle viste. Quindi distribuisci la tua applicazione come qualsiasi altra applicazione web su IIS (puoi anche auto-ospitare le API Web ASP.NET in qualcosa come un servizio Windows). Ecco an example on the official ASP.NET Web API website that calls a REST API developed in ASP.NET Web API from a console application. Ci sono molti altri esempi su questo sito.

+0

Grazie a Kevin .... – Naresh

+0

Tuttavia, in determinati requisiti aziendali, il server Web API deve trovarsi su un diverso livello di accesso al server Web (ad esempio per soddisfare i requisiti di sicurezza). In questi casi non abbiamo scelta, ma utilizzando il consumo di servizi web tradizionali? –

+0

@ HoàngLong - Che cos'è il "consumo di servizi Web tradizionali"? E cosa si intende per "livello di accesso diverso per il server web"? –

Problemi correlati