2013-12-12 22 views
15

Il mio team desidera eseguire l'aggiornamento da WCF a Web API. Abbiamo un'applicazione del modulo web asp.net funzionante, che abbiamo importato in VS2012 da VS2010. Fin qui tutto bene.Aggiunta dell'API Web ai moduli Web asp.net esistenti Applicazione

Ma ora, mentre provo a creare un progetto API Web separato, vedo che non è disponibile un modello di API Web. La cosa più vicina che riesco a trovare è creare un'applicazione MVC 4 e impostare il modello di progetto come WebAPI. Ho seguito questa strada e tutto è perfettamente inserito. Ho l'API di lavoro con un controller di esempio che posso invocare effettuando chiamate dal browser.

L'unico svantaggio di questo è che questo particolare metodo porta il proprio bagaglio. Il progetto MVC 4 che ho creato ha JQUERY e altre librerie incluse, più alcune altre cartelle che probabilmente non ho bisogno. Quello che voglio è solo la struttura dell'API Web e non il bagaglio extra.

Ho provato a trovare un modello utilizzando la ricerca in linea ma il pacchetto trovato non funziona correttamente e ha un punteggio molto basso. enter image description here

Spero di aver illustrato correttamente il mio problema. Non vedo l'ora di ricevere un feedback ora :) Grazie.

+0

Questo Blog forse utile per coloro che vedono questa domanda => http://forums.asp.net/t/1912278.aspx?How+to+get+WebAPI+only+project+in+ Visual + Studio + 2012 –

risposta

18

In Visual Studio 2013

  1. fare clic destro sul progetto ASP.NET Web Forms.
  2. Aggiungi -> Aggiungi elemento ponteggi ...
  3. Sotto installati nel// MVC/Web API comune scegliere il tipo di impalcatura che si desidera utilizzare.
  4. Seguire le istruzioni per il modello di scaffold.Ad esempio, quando si seleziona "Controller Web API 2 con azioni di lettura/scrittura" o "Controller API Web 2 - Vuoto", viene richiesto il nome del controller
  5. Sarà quindi necessario spostare il controller recentemente creato nel creato cartella Controllers.

Risultati

Da quello che posso vedere, Visual Studio esegue le seguenti operazioni:

  • "App_Start/WebApiConfig2.cs" viene creato.
  • La cartella di controllo è stata creata.
  • Web.config viene modificato per aggiungere l'elemento "gestori" con contenuto in "system.webServer".
  • I seguenti riferimenti aggiunti:
    • System.Net.Http
    • System.Net.Http.Formatting
    • System.Web.Extensions
    • System.Web.Http
    • sistema .Web.Http.WebHost
  • packages.config viene aggiornato t o includere:
    • "Microsoft.AspNet.WebApi"
    • "Microsoft.AspNet.WebApi.Client"
    • "Microsoft.AspNet.WebApi.Core"
    • "Microsoft.AspNet.WebApi.WebHost"

Note

Successivamente, vi consiglio di seguire la stessa passi, iniziando con il tasto destro del mouse sulla cartella Controllers al posto del progetto. Questo metterà il nuovo controller nella cartella Controllers invece che a livello di root.

Leggimi Visual Studio dopo aver seguito la procedura descritta sopra:

Visual Studio ha aggiunto la serie completa delle dipendenze per ASP.NET Web API 2 per proiettare 'RowersCode.Web'.

Il file Global.asax.cs nel progetto potrebbe richiedere ulteriori modifiche per abilitare l'API Web ASP.NET.

  1. Aggiungere i seguenti riferimenti dello spazio dei nomi:

    • utilizzando System.Web.Http;
    • utilizzando System.Web.Routing;
  2. Se il codice non è già definire un metodo Application, aggiungere il seguente metodo:

    protected void Application_Start()

    {

    }

  3. Aggiungere il seguente linee all'inizio del metodo Application_Start:

    GlobalConfiguration.Configure (WebApiConfig2.Register);

+0

Non vedo "Aggiungi elemento di ponteggio ..." – Si8

+0

In VS2015 è "Nuovo elemento impalcato ..." –

0

Dopo molte ricerche sono riuscito a trovare una soluzione a questo problema. Consentitemi di illustrare la mia soluzione rispetto alla versione di Visual Studio.

VS 2012

Come ho già detto nella questione, non v'è alcun modo preciso per creare il progetto Web API in VS2012. Dovrai farlo tramite creando un'applicazione MVC 4 e impostando il modello di progetto come WebAPI. Quindi, una volta che hai fatto questo e hai la tua API Web funzionante, puoi tranquillamente cancellare il bagaglio extra come le librerie Jquery e altre cose, perché queste cose sono assolutamente inutili qui nel tuo progetto.

VS 2013

In VS2013 c'è comunque un approccio migliore seguito per aggiungere e gestire i progetti Web API. Attualmente sto usando VS2013 per l'API Web e tutte le cose sono andate a posto proprio come volevo. Si prega di consultare questo link e si otterrà una migliore idea

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

Spero che queste informazioni aiuterà tutti coloro che sono nuovi al Web API. Soprattutto per coloro che desiderano eseguire l'aggiornamento a Web API o aggiungere Web API a progetti esistenti.

+0

@ daddy6Elbows. In realtà il mio requisito era quello di aggiungere l'API Web nell'applicazione Web Form esistente e quindi il titolo della mia domanda "Aggiunta dell'API Web a un'applicazione di moduli Web asp.net esistente". Tuttavia, solo per rispondere alla tua preoccupazione, l'aggiunta di API Web a MVC potrebbe non essere così diversa. Basta creare un progetto separato di API Web e farne riferimento in MVC o chiamare i metodi da MVC su HTTP da questo progetto. Entrambi dovrebbero funzionare. –

+1

Sì, stavi considerando come aggiungere MVC a un'applicazione Web Form esistente e non a un'applicazione MVC. Le mie scuse per la mis-caratterizzazione della domanda. Non penso che nessuno alla ricerca di una risposta alla tua domanda originale possa ottenere molte informazioni dalla tua risposta successiva, dal momento che non fornisci passaggi, esempi o altro che un collegamento a un articolo che sembra solo parzialmente correlato. Potrei sbagliarmi e forse non importa se nessun altro pone la domanda. – witttness

+0

Ho un sito Web esterno che è ASP.net Web Form. Ho pubblicato la mia API Web in una cartella come file system. I, quindi copiato quei file/cartelle in una sottocartella che ho creato nel mio sito Web, in modo che sia possibile accedervi esternamente. Ma quando ho provato a interrogare una chiamata API, ottengo un errore. Sto facendo il processo sbagliato? – Si8

Problemi correlati