Che cos'è esattamente "API Web" in ASP.Net MVC4?


15

So cos'è un'API Web.
Ho scritto API in più lingue (incluso in MVC3).
Sono anche ben praticato in ASP.Net.
Ho appena scoperto che MVC4 ha "Web API" e senza passare attraverso gli esempi video non riesco a trovare una buona spiegazione di cosa sia esattamente.
Dalla mia esperienza passata, le tecnologie Microsoft (in particolare ASP.Net) hanno la tendenza a prendere un concetto semplice e avvolgerlo in un mucchio di inutili spese generali che hanno lo scopo di rendere tutto "più facile".
Qualcuno può spiegarmi quale API Web in MVC4 è esattamente? Perché ne ho bisogno? Perché non posso semplicemente scrivere la mia API?


3
Stai parlando del nuovo framework API Web ? Questo è separato da MVC. Se è questo che intendi, dai un'occhiata a questo post di Rick Strahl.
Oded,

1
@Oded: dovresti inserire questo come risposta.
James P. Wright,

La cosa più bella dell'API Web (che non vedo elencata da nessuna parte nella risposta accettata o nel link sopra) è che se restituisci IQueryable <> i tuoi metodi web supportano automaticamente la sintassi della query OData! - Nello stack ASP.NET 4.5 generale "API Web" e "SignalR" stanno "sostituendo" WCF (non sono sicuro che siano costruiti o meno su WCF, ma WCF è stato rimosso da tutti gli schemi a blocchi e sostituito con "API Web" e "SignalR").
BrainSlugs83,

Why can't I just write my own API?Con un normale ASP.NET MVC? Puoi. L'API Web ASP.NET MVC ti offre solo extra extra per renderlo più semplice. Vedi sotto.
Jim G.

Risposte:


16

L'API Web ASP.NET è un framework "non supponente" per la creazione del servizio HTTP indipendentemente da REST o RPC. È la migliore implementazione di Microsoft di RFC 2616 (specifica HTTP).

Certamente puoi costruire la tua API ma l'API Web ASP.NET:

  • Costruito sulla base del modello Russian Doll che consente l'aggiunta di moduli simil-lego alla pipeline HTTP
  • Rende il cittadino HTTP di prima classe in modo che tutte le intestazioni comuni siano fortemente tipizzate (non solo il valore del nome) e aiuta a analizzarle
  • Consente sia l'hosting ASP.NET (IIS) sia l'hosting automatico
  • supporta la negoziazione di contenuti, i tipi di media, ...
  • È asincrono dall'alto verso il basso
  • Utilizza un approccio simile per i client con HttpClient

6

La nuova API Web di Microsoft è, come suggerisce il nome, tutto sulla scrittura di API accessibili dal web, con una tendenza al REST.

Rick Strahl ha recentemente scritto sul suo blog e ha una buona analisi su quando utilizzare MVC vs API Web.

Cose come la negoziazione dei contenuti integrata, diversi formati integrati e altro ancora.


6

In breve: l' API Web ASP.NET sta rendendo REST un cittadino di prima classe in .NET , che WCF non è stato davvero in grado di abbracciare. Come forse saprai, l' API Web ASP.NET è un framework for building web APIsin cima a .NET Framework.

Una delle maggiori frustrazioni che abbiamo avuto come sviluppatori web è stata quella di affrontare le infinite configurazioni con WCF. Voglio dire, WCF è fantastico ma non è stato abbracciato il REST dal framework API Web WCF . C'era qualcosa chiamato REST Starter Kit ma alla fine è morto.

Tuttavia, l'API Web ASP.NET è un framework di prossima generazione che semplifica la creazione di servizi HTTP che raggiungono un'ampia gamma di client, come browser e dispositivi mobili. È una piattaforma ideale per la creazione di applicazioni RESTful su .NET Framework. Per ulteriori informazioni e ottimi post sul blog, visitare la pagina dei blogger dell'API Web ASP.NET


1
Se cerchi la cronologia dell'API Web, è iniziata in WCF.
SASS_Shooter

Bene, ne è un sostituto leggero con importanti funzionalità per facilitare la configurazione e semplificare lo sviluppo delle app.
Yusubov,

@Yusobov: questo non è del tutto vero - Ci sono anche i servizi dati WCF che sono abbastanza bravi a costruire API REST compatibili con Odata. L'ho usato in un ambiente di produzione e funziona davvero bene una volta impostato. L'unico problema è che è molto più difficile da configurare di un'API Web ASP.NET.
Adrian Grigore,

1

L'API Web ASP.NET è un framework che semplifica la creazione di servizi HTTP che raggiungono un'ampia gamma di client, inclusi browser e dispositivi mobili.

L'API Web ASP.NET è una piattaforma ideale per la creazione di applicazioni RESTful su .NET Framework.

http://www.asp.net/web-api


MODIFICARE:

In particolare, l'API Web ASP.NET include:

  1. Una pipeline ASP.NET ottimizzata con sovraccarico ridotto se si sceglie di ospitare il servizio in IIS.
  2. HttpClient che semplifica il collegamento di un client nell'API Web.

Posso leggere queste cose da solo. La mia domanda è qual è il punto? Cosa c'è di così diverso nell'uso dell'API Web e nell'utilizzo del MVC normale ma con JsonResults invece di ViewResults?
James P. Wright,

1. Prima di MVC 4, è possibile restituire un JSONResult senza alcun problema. MVC 4 mantiene semplicemente questa funzionalità, include alcune altre classi di supporto per renderlo più semplice e semplifica la pipeline ASP.NET per ridurre il sovraccarico quando sai che non dovrai restituire ViewResults.
Jim G.

1
Inoltre, poiché è effettivamente un aggiornamento per l'API Web WCF, non sei sposato con IIS. Se preferisci, puoi ospitare autonomamente un servizio API Web ASP.NET. wcf.codeplex.com/…
Jim G.

-2

Oggi un'applicazione web non è sufficiente per raggiungere i suoi clienti. Le persone sono molto intelligenti, usano dispositivi iPhone, cellulari, tablet ecc. Nella sua vita quotidiana. Questi dispositivi hanno anche molte app per semplificarti la vita. In realtà, ci stiamo muovendo dal web verso il mondo delle app. Quindi, se ti piace esporre i tuoi dati di servizio ai browser e a tutte queste moderne app per dispositivi in ​​modo rapido e semplice, dovresti avere un'API compatibile con i browser e tutti questi dispositivi.


ciò non sembra aggiungere nulla di sostanziale rispetto ai punti formulati e spiegati nelle precedenti 4 risposte
moscerino del
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.