REST in ASP.NET Core
Wenn Sie zu einer Webseite navigieren, kommuniziert der Webserver mit Ihren Browsern über HTML, CSS und JavaScript. Wenn Sie beispielsweise mit der Seite interagieren, indem Sie ein Anmeldeformular übermitteln oder eine Schaltfläche „Kaufen“ auswählen, sendet der Browser die Informationen zurück an den Webserver.
Auf ähnliche Weise können Webserver mithilfe von Webdiensten mit verschiedenen Clients kommunizieren (z. B. mit Browsern, mobilen Geräten oder anderen Webservern). API-Clients kommunizieren mit dem Server über HTTP, wobei Informationen über ein Datenformat wie JSON oder XML ausgetauscht werden. APIs werden häufig in Single-Page-Anwendungen (SPAs) verwendet, die den Großteil der Benutzeroberflächenlogik in einem Webbrowser ausführen. Die Kommunikation mit dem Webserver erfolgt in erster Linie über Web-APIs.
REST: Ein gängiges Muster zum Erstellen von APIs mit HTTP
Representational State Transfer (REST) ist ein Architekturstil zum Erstellen von Webdiensten. REST-Anforderungen werden über HTTP ausgegeben. Sie arbeiten mit den gleichen HTTP-Verben wie Webbrowser, um Webseiten abzurufen und Daten an Server zu senden. Es gibt folgende Verben:
GET
: Abrufen von Daten aus dem Webdienst.POST
: Erstellen eines neuen Datenelements im Webdienst.PUT
: Aktualisieren eines Datenelements im Webdienst.PATCH
: Aktualisieren eines Datenelements im Webdienst, indem eine Reihe von Anweisungen zur Änderung des Elements beschrieben wird. In der Beispielanwendung in diesem Modul wird dieses Verb nicht verwendet.DELETE
: Löschen eines Datenelements im Webdienst.
Webdienst-APIs, die dem REST-Standard entsprechen, werden als RESTful-APIs bezeichnet. Sie werden wie folgt definiert:
- Ein Basis-URI.
- HTTP-Methoden wie
GET
,POST
,PUT
,PATCH
oderDELETE
. - Ein Medientyp für die Daten, z. B. JavaScript Object Notation (JSON) oder XML.
Eine API muss häufig Dienste für verschiedene, aber in Bezug stehende Dinge bereitstellen. Beispielsweise kann unsere Pizza-API Pizzas, Kunden und Bestellungen verwalten. Wir verwenden Routing zur Zuordnung von URIs (Uniform Resource Identifiers) zu logischen Abschnitten in unserem Code, sodass Anforderungen an https://localhost:5000/pizza an PizzaController
und Anforderungen an https://localhost:5000/order an OrderController
weitergeleitet werden.
Vorteile der Erstellung von APIs in ASP.NET Core
Mit ASP.NET können Sie das gleiche Framework und die gleichen Muster verwenden, um Webseiten und Dienste zu erstellen. Sie können Modellklassen und Validierungslogik wiederverwenden und sogar Webseiten und Dienste parallel im selben Projekt verarbeiten. Dieser Ansatz hat verschiedene Vorteile:
Einfache Serialisierung: ASP.NET wurde für moderne Webbenutzeroberflächen entwickelt. Endpunkte serialisieren Ihre Klassen automatisch, damit Sie ordnungsgemäß formatierten JSON-Code erhalten. Dazu ist keine spezielle Konfiguration erforderlich. Sie können die Serialisierung für Endpunkte anpassen, für die besondere Anforderungen gelten.
Authentifizierung und Autorisierung: Aus Sicherheitsgründen verfügen API-Endpunkte über integrierte Unterstützung für branchenübliche JSON-Webtoken (JWTs). Richtlinienbasierte Autorisierung bietet Ihnen die Flexibilität, leistungsstarke Zugriffssteuerungsregeln im Code zu definieren.
Routing mit Ihrem Code: Mit ASP.NET können Sie mithilfe von Attributen Routen und Verben inline mit Ihrem Code definieren. Daten aus dem Anforderungspfad, der Abfragezeichenfolge und dem Anforderungstext werden automatisch an Methodenparameter gebunden.
HTTPS als Standard: HTTPS ist ein wichtiger Bestandteil moderner, professioneller Web-APIs. Der Standard basiert auf einer End-to-End-Verschlüsselung, um Datenschutz zu gewährleisten und sicherzustellen, dass Ihre API-Aufrufe zwischen Client und Server nicht abgefangen und geändert werden.
ASP.NET bietet sofort einsatzbereite Unterstützung für HTTPS. Dabei wird automatisch ein Testzertifikat generiert und einfach importiert, um lokales HTTPS zu aktivieren, sodass Sie Ihre Anwendungen sicher ausführen und debuggen können, bevor Sie sie veröffentlichen.
Freigeben von Code und Wissen mit .NET-Apps
Nutzen Sie Ihre .NET-Fähigkeiten und Ihr Ökosystem, um Logik aus Ihrer Web-API für andere Apps freizugeben, die mit .NET erstellt wurden. Beispiele hierfür sind mobile, Web- und Desktop-Apps sowie Dienste.
Testen von Web-APIs mit .NET HTTP-REPL
Wenn Sie eine herkömmliche Website entwickeln, werden Sie Ihre Arbeit in der Regel in einem Webbrowser anzeigen und testen. Web-APIs akzeptieren Daten und geben Daten statt HTML zurück, sodass ein Webbrowser nicht das beste Web-API-Testtool ist.
Eine der einfachsten Optionen zum Untersuchen und Interagieren mit Web-APIs ist .NET HTTP-REPL (read-evaluate-print loop). Es ist eine einfache und beliebte Möglichkeit, interaktive Befehlszeilenumgebungen zu erstellen. In der nächsten Lerneinheit erstellen Sie eine einfache Web-API und interagieren dann mithilfe von .NET HTTP-REPL mit dieser API.