Qual è la differenza tra un'app API e un'app Web?


95

Ho letto ora alcune esercitazioni sulla distribuzione di app Web e app API in Azure. Tuttavia, non sono ancora sicuro del motivo per cui dovresti usarne uno piuttosto che un altro.

Posso creare una nuova soluzione .NET con controller API e distribuirla come app Web, quindi perché dovrei richiedere specificamente un'app API? Questi sono ottimizzati specificamente per l'API Web ASP.NET, dove le app Web sono per la distribuzione di HTML?

Risposte:


75

Aggiornando la risposta allo stato corrente di Azure,

I servizi app ora sostituiscono tutte le versioni per dispositivi mobili, API e app Web come un unico framework di app con tutte le funzionalità trasferite per rendere le cose più accessibili tra i tipi di applicazioni. Attualmente tutte le app Web, mobili e API sono chiamate collettivamente Servizi app. Offriamo comunque ai clienti la possibilità di creare un'app mobile e un'app Web nella raccolta, ma fondamentalmente si risolve in un'app del servizio app.

https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/

Funzionalità per il lavoro mobile per Web App, come Easy Tables e Easy API. E le funzionalità per le app API come API Cors e le definizioni API ora funzionano anche sulle app Web. Un cliente può ospitare una singola app Web che funge da qualsiasi servizio mobile o API con tutte le funzionalità offerte tramite i servizi dell'app.

Abbiamo anche un nuovo servizio in anteprima, rivolto in particolare alle app API offrendo un'esperienza di gestione per le tue API, in pratica puoi controllare la generazione di pagine API di prova, raccogliere analisi di esecuzione, accelerazione e molto altro. Consulta il blog delle funzionalità per ulteriori informazioni sulle funzionalità di gestione delle API di Azure. E sì, puoi ospitare le API come app del servizio app e collegare le cose con Gestione API.

https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/


2
Complimenti per mantenere le cose aggiornate! Sebbene ... Normalmente penserei che una nuova risposta sarebbe in ordine, dato quante informazioni sono state aggiornate rispetto alla risposta originale. Poi di nuovo, immagino che questo sia uno strano caso / area grigia, dal momento che era già stato votato / accettato. :)
David Makogon

Sì, penso che l'aggiornamento sia buono in quanto mantiene il thread fresco e assicura che le persone vedano facilmente la risposta :).
Chibi Chakaravarthi

4
Quindi qual è il motivo principale per avere APP API e app Web sotto l'ombrello dei servizi APP se non c'è differenza
Hussein Salman

1
Un'altra differenza: se uno sviluppatore desidera importare una definizione di app nella gestione delle API utilizzando l'opzione App Api, solo le app Web create come App Api saranno disponibili per la selezione
user1075679

59

C'è stato un momento in cui c'erano differenze tra i diversi tipi di servizio app, ma non è più vero. La documentazione ora afferma:

L'unica differenza tra i tre tipi di app (API, Web, mobile) è il nome e l'icona utilizzati per essi nel portale di Azure.

Quindi non è più importante quale tipo di servizio app scegli di distribuire (a meno che non ti interessi l'aspetto dell'icona).

AGGIORNARE

Le app per le funzioni ora sono l'eccezione. La creazione di un'app per le funzioni modifica l'interfaccia utente nel portale. L'app Web sottostante, tuttavia, non è diversa. L'impostazione di un'impostazione dell'app denominata FUNCTIONS_EXTENSION_VERSION= ~1trasforma qualsiasi app Web in un'app per le funzioni (meno l'interfaccia utente nel portale).


C'è un'altra differenza. Non puoi usare gli snappoint di debug sulle app API. Vedere i commenti di Nikhil_Joglekar_MSFT il 12 ottobre 2017 docs.microsoft.com/en-us/visualstudio/debugger/…
Scott Chamberlain

@ChibiChakaravarthi Come distinguere se un'app è un'app per le funzioni utilizzando rest api? Sto utilizzando questo endpoint API: management.azure.com/subscriptions {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name}? Api-version = 2016-08-01 C'è una chiave gentile in la risposta, è quella chiave affidabile e utile?
rohanagarwal

Purtroppo no. l'app per le funzioni è solo un'altra app Web. Posso sapere perché vuoi conoscere il tipo di app?
Chibi Chakaravarthi

11

Ci sono molte piccole differenze tra l'API Web e le app API, ma le differenze molto importanti e fondamentali lo sono

  1. Implementazione nativa di Swagger: quando crei un'app API in Visual Studio, il riferimento a swagger viene fornito per impostazione predefinita. Swagger fornisce funzionalità molto intuitive per gli sviluppatori per consentire ai consumatori di API di interagire con la tua API tramite l'interfaccia utente di Swagger. Anche le API basate su Swagger forniscono la generazione di client SDK (sia client basato su .Net che client basato su Javascript) che rende facile chiamare le API proprio come una normale chiamata al metodo. Nota: l'implementazione Swagger sulla normale API Web è possibile manualmente.

  2. Possibilità di pubblicare le tue app per le API in Azure Market Place. Azure Market Place è il repository pubblico di tutte le app API che possono essere consumate gratuitamente oa pagamento.

questo video di 15 minuti da Channel 9 offre un'eccellente panoramica sulle app Api.


2

Per completare la risposta di Greg, ecco un articolo ancora più recente che descrive le differenze.

Per riassumere:

"Le funzionalità chiave delle app API - autenticazione, CORS e metadati API - sono state spostate direttamente nel servizio app. Con questa modifica, le funzionalità sono disponibili su Web, dispositivi mobili e app API. In effetti, tutte e tre condividono lo stesso Microsoft.Web / tipo di risorsa siti in Resource Manager. "

Ed ecco un'altra nota importante:

"Se la tua API è già distribuita come Web App o Mobile App, non devi ridistribuire la tua app per sfruttare le nuove funzionalità."


1

Ciò può dipendere da ciò che si sta tentando di fare, ma si utilizzerà un'API Web quando si crea un servizio. ASP.Net Web API è un framework per la creazione di servizi HTTP che possono essere utilizzati da un'ampia gamma di client. Ciò ti consente di costruirlo non solo per un'app Web, ma di aprirlo per connettersi ad app Android, app IOS, app Web, app di Windows 8, app WPF ecc.

Quindi, se hai bisogno di un servizio Web ma non hai bisogno di SOAP, puoi utilizzare l'API Web.


Penso che l'utente stia dicendo che un'app web api è così simile a un'app web e infatti in VS possiamo combinarle facilmente ciò che rende unica un'app web api. Quando distribuiamo un'API Web o un'app Web in IIS a livello locale, non c'è alcuna differenza, quindi perché una differenza in Azure?
user441521

1

Ecco i miei commenti:

App API: utilizzata per funzionalità specifiche. Attivazione di tale funzionalità da un URL. Può essere utilizzato con GET, POST, PUT, DELETE. Può ricevere parametri su BODY (Json). Risposta con codice di stato valido (errore, successo)

APP Web: un'applicazione distribuita con più funzionalità, ad esempio un catalogo per creare, aggiornare ed eliminare clienti o per creare un ERP completo.

Funzione APP: è molto simile all'app API, utilizzata per funzionalità specifiche. Attivazione di tale funzionalità da un URL. Può essere utilizzato con GET, POST, PUT, DELETE. Può ricevere parametri su BODY (Json). Risposta con codice di stato valido (errore, successo)

Tabella di confronto: app Web, app per API e funzioni di Azure.


0

In realtà puoi distribuire il tuo aspnet webapi su Azure WebApp e un self-host sui ruoli di lavoro.

Su WebApp (ex siti Web di Azure), verrà distribuito su IIS, in modo da poter sfruttare le funzionalità di IIS.

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.