31

Attualmente sto leggendo alcune esercitazioni sulla distribuzione di app Web e App per API in Azure. Tuttavia, sono ancora un po 'incerto sul motivo per cui dovresti usarne uno piuttosto che un altro.Qual è la differenza tra un'App API e un'app Web?

Posso creare una nuova soluzione .NET con i controller API e distribuirla come app Web, quindi perché richiedere specificamente un'API App? Sono ottimizzati in modo specifico per l'API Web ASP.NET, dove le app Web servono a fornire HTML?

risposta

37

Aggiornamento la risposta alla attuale stato di Azure,

App Services ora sostituisce tutti i sapori mobile, Api e Web Apps come un unico quadro app con tutte le funzionalità rotolato sopra per rendere le cose più accessibili attraverso tipi di applicazioni. Attualmente tutte le app Web, Mobile e Api sono denominate collettivamente App Services. Offriamo ancora ai clienti la possibilità di creare un'app mobile e un'app Web nella galleria, ma fondamentalmente si risolvono in un'app del servizio app.

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

Caratteristiche per il lavoro mobile per la Web App, così come tavoli semplici e di facile API. Inoltre, le funzioni 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 per fungere da qualsiasi servizio mobile o un'API con tutte le funzionalità offerte tramite i servizi dell'app.

Abbiamo anche un nuovo servizio in anteprima, in particolare per le API, offrendo un'esperienza di gestione per le API, in pratica è possibile controllare le pagine di API di prova, raccogliere analisi di esecuzione, accelerazione e molto altro. Consulta il blog delle funzionalità per ulteriori informazioni sulle funzioni di gestione dell'API di Azure. E sì, puoi ospitare le API come App App Service 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! Anche se ... 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 un caso strano/area grigia, dal momento che è già stato upvoted/accettato. :) –

+0

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

+0

Quindi qual è il motivo principale per cui le API APP e le app Web sono sotto l'ombrello di APP Services se non c'è differenza – Coding

0

In realtà è possibile distribuire il proprio aspec webapi su Web App di Azure e un self host su Ruoli di lavoro.

Su WebApp (ex siti Web di Azure), verrà distribuito su IIS, quindi è possibile sfruttare le funzionalità di IIS.

1

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

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

+0

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

36

C'è stato un momento in cui vi erano differenze tra i diversi tipi di servizio app, ma che non è più vero. Il documentation ora afferma:

L'unica differenza tra i tre tipi di applicazioni (API, web, mobile) è il nome e l'icona utilizzata per loro nel portale Azure.

Quindi non importa più quale tipo di servizio app si sceglie di distribuire a (a meno che non ti interessa come appare l'icona).

UPDATE

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

+0

Grazie per averlo indicato, ho aggiornato la risposta contrassegnata! –

+1

Questa risposta deve essere contrassegnata corretta. Grazie. – beast

+0

C'è un'altra differenza. Non è possibile utilizzare il debug di snappoints su applicazioni API. Vedere i commenti di Nikhil_Joglekar_MSFT il 12 ottobre 2017 https://docs.microsoft.com/en-us/visualstudio/debugger/debug-live-azure-applications –

5

ci sono molte differenze minori tra API Web e API Apps, ma le differenze molto importanti e fondamentali sono

  1. implementazione Swagger Native - Quando si creano API App in Visual Studio, riferimento spavalderia viene fornito di default. Swagger offre funzionalità di facile utilizzo per gli utenti API per interagire con la tua API tramite l'interfaccia utente Swagger. Anche le API basate su Swagger forniscono la generazione di SDK client (client basati su .Net e client basati su Javascript) che rende facile chiamare le API proprio come una normale chiamata di metodo. Nota: l'implementazione di Swagger su API Web regolari è possibile manualmente.

  2. Possibilità di pubblicare le app API in Azure Market Place. Azure Market Place è il repository pubblico per tutte le App API che possono essere consumate liberamente o a pagamento.

this 15 minuti di video da Channel 9 offre un'ottima panoramica sulle Api Apps.

1

A integrazione risposta di Greg, Here's an even more recent article describing the differences.

Per riassumere:.

"Le caratteristiche principali di applicazioni API - l'autenticazione, CORS e metadati API - si sono spostati direttamente in App Servizio Con questo cambiamento, le caratteristiche sono disponibili su tutte le applicazioni Web, Mobile e API. In effetti, tutti e tre condividono lo stesso tipo di risorsa Microsoft.Web/siti in Resource Manager. "

Ed ecco un'altra nota importante:

"Se il tuo API è già stato distribuito come un Web App o Mobile App, non si dispone di ridistribuire la vostra applicazione per sfruttare le nuove funzionalità."