Was genau ist "Web-API" in ASP.Net MVC4?

15

Ich weiß, was eine Web-API ist.
Ich habe APIs in mehreren Sprachen geschrieben (einschließlich in MVC3).
Ich bin auch in ASP.Net gut geübt.
Ich habe gerade entdeckt, dass MVC4 eine "Web-API" hat und ohne die Videobeispiele durchzugehen, kann ich keine gute Erklärung dafür finden, was es genau ist.
Nach meiner bisherigen Erfahrung tendieren Microsoft-Technologien (insbesondere ASP.Net) dazu, ein einfaches Konzept in einen Haufen unnützer Gemeinkosten zu packen, um alles "einfacher" zu machen.
Kann mir bitte jemand erklären, welche Web-API in MVC4 genau ist? Warum brauche ich das? Warum kann ich nicht einfach meine eigene API schreiben?

James P. Wright
quelle
3
Sprechen Sie über das neue Web-API- Framework? Das ist getrennt von MVC. Wenn Sie das meinen, schauen Sie sich diesen Blog-Beitrag von Rick Strahl an.
Oded
1
@Oded: Sie sollten dies als Antwort setzen.
James P. Wright
Das Coolste an der Web-API (die in der akzeptierten Antwort oder dem obigen Link nirgendwo aufgeführt ist) ist, dass Ihre Webmethoden bei der Rückgabe eines IQueryable <> automatisch die OData-Abfragesyntax unterstützen! - Im allgemeinen ASP.NET 4.5-Stack ersetzen "Web API" und "SignalR" "WCF" (ich bin nicht sicher, ob sie auf WCF aufbauen oder nicht, aber WCF wurde aus allen Blockdiagrammen entfernt und ersetzt mit "Web API" und "SignalR").
BrainSlugs83
Why can't I just write my own API?Mit nur regulären ASP.NET MVC? Du kannst. Die ASP.NET MVC-Web-API bietet Ihnen nur zusätzliche Extras, um dies zu vereinfachen. Siehe unten.
Jim G.

Antworten:

16

Die ASP.NET-Web-API ist ein Framework, mit dem Sie HTTP- Dienste unabhängig von REST oder RPC erstellen können . Dies ist die beste Implementierung von RFC 2616 (HTTP-Spezifikation) von Microsoft.

Natürlich können Sie Ihre eigene API erstellen, aber die ASP.NET-Web-API:

  • Basierend auf dem Russian Doll- Modell, mit dem der HTTP-Pipeline legoartige Module hinzugefügt werden können
  • Lässt HTTP zu einem erstklassigen Bürger werden, sodass alle gängigen Header stark typisiert sind (nicht nur Name, Wert) und hilft beim Parsen
  • Ermöglicht sowohl ASP.NET (IIS) -Hosting als auch Self-Hosting
  • unterstützt die Aushandlung von Inhalten, Medientypen, ...
  • Ist von oben nach unten asynchron
  • Verwendet einen ähnlichen Ansatz für Clients mit HttpClient
Aliostad
quelle
6

Die neue Web-API von Microsoft ist, wie der Name schon sagt, das Schreiben von APIs, auf die über das Internet zugegriffen werden kann, mit einem Hang zu REST.

Rick Strahl hat kürzlich darüber gebloggt und hat eine gute Analyse, wann man MVC vs Web API verwendet.

Dinge wie integrierte Inhaltsaushandlung, mehrere integrierte Formate und mehr.

Oded
quelle
6

Kurz gesagt: Die ASP.NET-Web-API macht REST zu einem erstklassigen Bürger in .NET , den WCF nicht wirklich einbeziehen konnte. Wie Sie vielleicht wissen, ist die ASP.NET-Web-API ein Framework, das for building web APIsauf .NET Framework aufbaut.

Eine der größten Enttäuschungen, die wir als Webentwickler hatten, war die endlose Konfiguration mit WCF. Ich meine, WCF ist großartig, wurde aber seit dem WCF-Web-API-Framework nicht mehr als REST eingestuft . Es gab etwas namens REST Starter Kit, aber es endete tot.

Die ASP.NET-Web-API ist jedoch ein Framework der nächsten Generation, mit dem HTTP-Dienste, die eine breite Palette von Clients wie Browser und Mobilgeräte erreichen, auf einfache Weise erstellt werden können. Es ist eine ideale Plattform zum Erstellen von RESTful-Anwendungen auf .NET Framework. Weitere Informationen und großartige Blogbeiträge finden Sie auf der ASP.NET Web API-Bloggerseite

Yusubov
quelle
1
Wenn Sie die Geschichte der Web-API recherchieren, begann dies in WCF.
SASS_Shooter
Nun, es ist ein leichtgewichtiger Ersatz mit wichtigen Funktionen, um die Konfiguration zu vereinfachen und die App-Entwicklung zu rationalisieren.
Yusubov
@Yusobov: Dies ist nicht ganz richtig - Es gibt auch die WCF-Datendienste, die sich gut zum Erstellen von Odata-kompatiblen REST-APIs eignen. Ich habe es in einer Produktionsumgebung verwendet und es funktioniert wirklich gut, wenn es einmal eingerichtet ist. Das einzige Problem dabei ist, dass die Einrichtung viel schwieriger ist als bei einer ASP.NET-Web-API.
Adrian Grigore
1

Die ASP.NET-Web-API ist ein Framework, mit dem sich auf einfache Weise HTTP-Dienste erstellen lassen, die eine breite Palette von Clients erreichen, einschließlich Browser und Mobilgeräte.

Die ASP.NET-Web-API ist eine ideale Plattform zum Erstellen von RESTful-Anwendungen in .NET Framework.

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


BEARBEITEN:

Insbesondere umfasst die ASP.NET-Web-API Folgendes:

  1. Eine optimierte ASP.NET-Pipeline mit reduziertem Overhead, wenn Sie Ihren Dienst in IIS hosten möchten.
  2. HttpClient, der es einem Client erleichtert, sich in die Web-API einzuhängen.
Jim G.
quelle
Ich kann diese Dinge selbst lesen. Meine Frage ist, worum geht es? Was ist so anders an der Verwendung der Web-API und der Verwendung von MVC, wenn JsonResults anstelle von ViewResults verwendet wird?
James P. Wright
1. Vor MVC 4 konnten Sie ein JSONResult ohne Probleme zurückgeben. MVC 4 behält diese Funktion einfach bei, enthält einige andere Hilfsklassen, um dies zu vereinfachen, und optimiert die ASP.NET-Pipeline, um den Overhead zu verringern, wenn Sie wissen, dass Sie ViewResults nicht zurückgeben müssen.
Jim G.
1
Da es sich im Grunde genommen um ein Update für die WCF-Web-API handelt, sind Sie nicht an IIS gebunden. Sie können einen ASP.NET-Web-API-Dienst bei Bedarf selbst hosten. wcf.codeplex.com/…
Jim G.
-2

Heutzutage reicht eine webbasierte Anwendung nicht mehr aus, um ihre Kunden zu erreichen. Die Leute sind sehr schlau, sie benutzen im täglichen Leben iPhone, Mobile, Tablets usw. Geräte. Diese Geräte haben auch eine Menge Apps, um das Leben einfacher zu machen. Tatsächlich bewegen wir uns vom Web in Richtung Apps-Welt. Wenn Sie also Ihre Servicedaten schnell und einfach den Browsern und all diesen modernen Geräte-Apps zur Verfügung stellen möchten, sollten Sie über eine API verfügen, die mit Browsern und all diesen Geräten kompatibel ist.

atul
quelle
Dies scheint nichts Wesentliches über die in den vorherigen 4 Antworten gemachten und erklärten Punkte hinzuzufügen
Mücke