webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen einer API-App und einer Web-App?

Ich habe jetzt einige Tutorials zum Bereitstellen von Web-Apps und API-Apps in Azure gelesen. Ich bin mir jedoch immer noch ein wenig unsicher, warum Sie eine über eine andere verwenden würden.

Ich kann eine neue .NET-Lösung mit API-Controllern erstellen und diese als Web-App bereitstellen. Warum sollte ich dann speziell eine API-App benötigen? Sind diese speziell für die ASP.NET-Web-API optimiert, während Web-Apps für die Bereitstellung von HTML dienen?

80
envio

Aktualisieren der Antwort auf den aktuellen Status von Azure

App Services ersetzt jetzt alle Mobile-, Api- und Web-Apps-Varianten als ein einziges App-Framework, wobei alle Funktionen erweitert werden, um den Zugriff auf alle Anwendungstypen zu erleichtern. Derzeit werden alle Web-, Mobile- und Api-Apps gemeinsam als App Services bezeichnet. Wir bieten Kunden weiterhin die Möglichkeit, eine Mobile App und eine Web App in zu erstellen die galerie wird aber im grunde in eine app service app aufgelöst.

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

Funktionen für Mobile Work für Web App sowie Easy Tables und Easy API. Und Funktionen für API-Apps wie API Cors und API-Definitionen funktionieren jetzt auch für Web-Apps. Ein Kunde kann eine einzelne Web-App hosten, um als mobiler Dienst oder als API mit allen Funktionen zu fungieren, die über die App-Dienste angeboten werden.

Wir haben auch einen neuen Service in der Vorschau, der speziell auf API-Apps abzielt, indem er eine Verwaltungserfahrung für Ihre APIs bietet. Grundsätzlich können Sie die Seiten zum Generieren von Try-APIs steuern, Ausführungsanalysen erfassen, Drosselung und vieles mehr. Weitere Informationen zu den Azure API-Verwaltungsfunktionen finden Sie im Feature-Blog. Und ja, Sie können die APIs als App Service App hosten und eine Verbindung zum API-Management herstellen.

https://Azure.Microsoft.com/en-us/documentation/articles/api-management-get-started/

62

Es gab einen Zeitpunkt, an dem es Unterschiede zwischen den verschiedenen App-Servicetypen gab, aber das stimmt nicht mehr. In der Dokumentation heißt es nun:

Der einzige Unterschied zwischen den drei App-Typen (API, Web, Mobile) ist der Name und das Symbol, die im Azure-Portal für sie verwendet werden.

Daher spielt es keine Rolle mehr, für welchen App-Service-Typ Sie sich entscheiden (es sei denn, es interessiert Sie, wie das Symbol aussieht).

[~ # ~] Update [~ # ~]

Funktions-Apps sind jetzt die Ausnahme. Durch das Erstellen einer Funktions-App wird die Benutzeroberfläche im Portal geändert. Die zugrunde liegende Web-App ist jedoch nicht anders. Festlegen einer App-Einstellung mit dem Namen FUNCTIONS_EXTENSION_VERSION = ~1 verwandelt jede Web-App in eine Funktions-App (abzüglich der Benutzeroberfläche im Portal).

56
gregjhogan

Es gibt viele geringfügige Unterschiede zwischen Web-API und API-Apps, aber die sehr bemerkenswerten und wichtigsten Unterschiede sind

  1. Native Swagger-Implementierung - Wenn Sie eine API-App in Visual Studio erstellen, wird standardmäßig eine Swagger-Referenz verwendet. Swagger bietet API-Konsumenten sehr entwicklerfreundliche Funktionen für die Interaktion mit Ihrer API über die Swagger-Benutzeroberfläche. Auch Swagger-basierte APIs bieten eine Client-SDK-Generierung (sowohl .NET-basierter Client als auch Javascript-basierter Client), mit der APIs wie normale Methodenaufrufe einfach aufgerufen werden können. Hinweis: Die Implementierung von Swagger auf einer regulären Web-API ist manuell möglich.

  2. Möglichkeit zum Veröffentlichen Ihrer API-Apps in Azure Market Place. Azure Market Place ist das öffentliche Repository für alle API-Apps, die kostenlos oder kostenlos verwendet werden können.

this Ein 15-minütiges Video von Channel 9 bietet einen hervorragenden Überblick über Api Apps.

11

Hier meine Kommentare:

API-App: Wird für bestimmte Funktionen verwendet. Auslösen dieser Funktionalität über eine URL. Kann mit GET, POST, PUT, DELETE verwendet werden. Kann Parameter bei BODY (Json) empfangen. Antwort mit gültigem Statuscode (Fehler, Erfolg.)

Web-APP: Eine mit mehreren Funktionen bereitgestellte Anwendung, z. B. ein Katalog zum Erstellen, Aktualisieren und Löschen von Kunden oder zum Erstellen eines vollständigen ERP.

Funktions-APP: Ist der API-App sehr ähnlich. Wird für bestimmte Funktionen verwendet. Auslösen dieser Funktionalität über eine URL. Kann mit GET, POST, PUT, DELETE verwendet werden. Kann Parameter bei BODY (Json) empfangen. Antwort mit gültigem Statuscode (Fehler, Erfolg.)

Comparation table: Web App vs API app vs Azure Functions.

1
Israel Calderon

Um Gregs Antwort zu ergänzen, Hier ist ein noch neuerer Artikel, der die Unterschiede beschreibt.

Um zusammenzufassen:

"Die wichtigsten Funktionen von API-Apps - Authentifizierung, CORS und API-Metadaten - wurden direkt in App Service übernommen. Mit dieser Änderung stehen die Funktionen für alle Web-, Mobil- und API-Apps zur Verfügung. Tatsächlich nutzen alle drei die gleichen Microsoft.Web/Site-Ressourcentyp im Ressourcen-Manager. "

Und hier ist noch ein wichtiger Hinweis:

"Wenn Ihre API bereits als Web-App oder mobile App bereitgestellt wurde, müssen Sie Ihre App nicht erneut bereitstellen, um die neuen Funktionen nutzen zu können."

1
Rudy Scoggins

Dies kann davon abhängen, was Sie versuchen, aber Sie würden eine Web-API verwenden, wenn Sie einen Dienst erstellen. Die ASP.Net-Web-API ist ein Framework zum Erstellen von HTTP-Diensten, die von einer Vielzahl von Clients verwendet werden können. Auf diese Weise können Sie es nicht nur für eine Web-App erstellen, sondern auch öffnen, um eine Verbindung mit Android Apps, IOS Apps, Web-Apps, Windows 8-Apps) herzustellen , WPF Apps etc ..

Wenn Sie also einen Webdienst benötigen, aber keinen SOAP benötigen, können Sie die Web-API verwenden.

1
Daniel Egan

Tatsächlich können Sie Ihr Aspnet-Webapi in Azure WebApp und einen Self-Host in Worker-Rollen bereitstellen.

Auf WebApp (früheren Azure-Websites) wird es auf IIS bereitgestellt, sodass Sie die IIS) -Funktionen nutzen können.

0
Thiago Custodio