Zum Fußzeileninhalt springen
Iron Academy Logo
C#-Anwendung
C#-Anwendung

Andere Kategorien

Beispieldaten und Filterung - Erstellen einer Beispiel-API in C#

Tim Corey
42m 43s

Ein wichtiges Hilfsmittel bei der Webentwicklung ist heute eine Beispiel-Web-API, mit der Sie Frontend-Webanwendungen, mobile Geräte oder sogar Softwareanwendungen testen können. In seinem ausführlichen Video "Beispieldaten und Filterung - Erstellen einer Beispiel-API in C#" führt uns Tim Corey durch die Erstellung einer C#-Web-API, die Beispieldaten aus einer JSON-Datei lädt, die Filterung einrichtet und für die Bereitstellung als Docker-Container oder herkömmliche Webanwendung vorbereitet ist.

In diesem Artikel gehen wir Schritt für Schritt auf Tims Ansatz ein und erläutern die wichtigsten Konzepte von ASP.NET Core Web API, Minimal APIs und HTTP-Diensten.

Einführung in die Beispiel-Web-API

Zu Beginn erklärt Tim, warum das Erstellen eines neuen Web-API-Projekts für Entwickler so wichtig ist. Ganz gleich, ob Sie für mobile Geräte, eine Webanwendung oder andere Softwareanwendungen entwickeln, mit einer leichtgewichtigen Beispiel-API lassen sich Tests schneller und reibungsloser durchführen.

Tim sagt, dass wir am Ende des Projekts Folgendes haben werden:

  • Eine minimale API mit ASP.NET Core und .NET Core,

  • Eine dokumentierte API mit OpenAPI (Swagger UI) Unterstützung,

  • Gesundheitschecks,

  • Simulierte Fehler und Verlangsamungen,

  • Bereitstellung in einem Docker-Container und auf einem VPS-Server.

Dieses kleine Projekt wird es Entwicklern ermöglichen, auf einfache Weise mit HTTP-Diensten zu interagieren, und zwar über HTTP-Methoden wie GET, PUT, POST und DELETE.

Einrichtung des Projekts und Beispieldaten

Tim beginnt mit der Strukturierung des Web-API-Projekts in Visual Studio, der beliebten integrierten Entwicklungsumgebung von Microsoft.

Bei 1:07 erstellt Tim einen neuen Datenordner und fügt eine courseData.json-Datei hinzu. Er erwähnt, dass seine Live-Site, timcorey.com, ein ähnliches System verwendet - nur eine große JSON-Datei im Hintergrund, die als Webservice fungiert.

Die wichtigsten Punkte aus Tims Setup:

  • Verwenden Sie JSON-Dateien für Beispieldaten, damit keine Datenbank oder Entity Framework erforderlich ist.

  • Halten Sie die Container klein und vermeiden Sie zusätzliche Dienste wie SQL-Server.

  • Die Daten sind nicht veränderbar - es besteht keine Notwendigkeit, Änderungen zu speichern; daten bei Bedarf einfach zurücksetzen.

Diese Wahl spiegelt die REST-Prinzipien (Representational State Transfer) für die Arbeit mit vorhandenen Ressourcen wider.

Verständnis der Kursdatenstruktur

Tim geht sorgfältig die Struktur der JSON-Beispieldatei durch:

  • ID (ganze Zahl),

  • Vorbestellung (boolesch),

  • Kurs-URL (String),

  • Kurstyp (string),

  • Name, Anzahl der Lektionen, Kurslänge in Stunden (Zahlen),

  • Beschreibung, Bild-URL,

  • Preis in USD,

  • Vorschau-Link.

Tim erklärt bei 3:29, dass sich alle Preise auf US-Dollar beziehen; der Endpreis kann sich jedoch aufgrund lokaler Steuern (MwSt.) ändern.

Jedes dieser Felder wird später auf eine Modellklasse in C# abgebildet - ein grundlegendes Element bei der Erstellung von ASP.NET-Web-APIs.

Erstellung der Kursmodellklasse

Beim Einstieg in die .NET Core-Codierung erstellt Tim eine CourseModel.cs-Datei in einem neuen Models-Ordner.

Bei 4:47 verwendet er Visual Studio's "Paste Special > Paste JSON as Classes", um sofort eine Klasse basierend auf der JSON-Struktur zu erstellen. Tim weist darauf hin:

  • Korrekte PascalCase-Benennung (wichtig für C#-Web-APIs),

  • Erforderliche vs. löschbare Zeichenketten (6:02),

  • Vermeiden Sie die Speicherung von Null, wo eine leere Zeichenkette ausreichen würde.

Die Erstellung einer starken Modellklasse ist entscheidend für die Datenkommunikation zwischen Clients und dem Server.

Laden von Daten in den Speicher

Tim fährt fort, indem er eine CourseData.cs-Klasse erstellt, um das Laden der Kursliste in den Speicher zu verwalten.

Wichtige Schritte:

  • Verwenden Sie System.Text.Json für die Deserialisierung,

  • Setzen Sie PropertyNameCaseInsensitive = true (8:04), um JSON-Felder in CamelCase auf C#-Felder in PascalCase zu übertragen,

  • Verwenden Sie Path.Combine (9:04) für den plattformübergreifenden Dateizugriff,

  • Groß- und Kleinschreibung beim Umgang mit Linux-Servern beachten (9:59).

Die Kurse werden in eine öffentliche List-Eigenschaft geladen, um einen schnellen Zugriff zu gewährleisten, ohne wiederholt auf eine Datenbank zuzugreifen.

Tim bei 11:04 betont, dass bei einer fehlgeschlagenen Deserialisierung eine neue leere Liste erstellt wird, um Nullreferenzfehler zu vermeiden - eine bewährte Praxis bei der Erstellung robuster APIs.

Registrierung der Kursdaten in Dependency Injection

Als Nächstes zeigt Tim, wie man die CourseData-Klasse mit AddTransient im Dienste-Container registriert.

Er erklärt, dass die Daten zwar schreibgeschützt sind, aber durch die Verwendung eines transienten Dienstes versehentliche Änderungen vermieden werden können. Dieser Ansatz steht im Einklang mit den modernen ASP.NET Core Web API-Entwicklungsstandards.

Kursendpunkte erstellen

Um 14:03 Uhr beginnt Tim mit der Erstellung von Endpunkten für die Beispiel-API:

  • Eine GET-Methode unter /courses zum Abrufen aller Kurse,

  • Eine Erweiterungsmethode AddCourseEndpoints für saubereren Code.

Dieser modulare Ansatz vereinfacht die Skalierung Ihres Web-API-Projekts - eine wesentliche Technik bei der Verwaltung großer HTTP-Dienste oder mehrerer Endpunkte.

Building A Sample Api In Csharp 1 related to Kursendpunkte erstellen

Tim setzt auch die Start-URL auf Swagger UI, was das Testen erleichtert.

Fehlerbehebung: Datentyp-Fehlanpassungen

Beim Testen des neuen Endpunkts stößt Tim auf einen Statuscodefehler im Zusammenhang mit dem Feld CourseLengthInHours. Er weiß, dass einige Kurse Bruchteile von Stunden haben (z. B. 2,5), so dass ein Double statt eines Int erforderlich ist.

Tim korrigiert das CourseModel und zeigt, wie wichtig eine gründliche Fehlerprüfung und die Beachtung von Datentypen bei der Nutzung externer Webressourcen sind.

Verbesserung der API mit ID Lookup

Tim erweitert die Funktionalität:

  • LoadAllCourses zum Abrufen aller Kurse,

  • LoadCourseById zum Auffinden eines Kurses nach ID.

Er verbessert die Fehlerbehandlung, indem er prüft, ob ein Kurs existiert. Wenn dies nicht der Fall ist, verwendet Tim return NotFound() und gibt einen entsprechenden HTTP-Statuscode an den Client zurück.

Dies entspricht den Praktiken des RESTful-Architekturstils, bei dem jede HTTP-Methode das Ergebnis der Operation klar kommuniziert.

Filterung nach Kurstyp und Suche hinzufügen

Eine einfache GET-Methode reicht nicht aus - echte Webdienste benötigen Filterfunktionen.

Tim erweitert LoadAllCourses, um Abfrageparameter zu akzeptieren:

  • courseType (string),

  • suche (String).

Er erklärt, wie man optionale Parameter mit String.IsNullOrWhiteSpace sicher behandelt.

Die Filterung nach courseType verwendet RemoveAll mit String.Compare, wobei Groß- und Kleinschreibung ignoriert werden. Für die Suche nach dem Kursnamen und der Kurzbeschreibung wird .Contains mit einem Groß-/Kleinschreibung-unabhängigen Vergleich verwendet.

Tim testet Szenarien wie:

  • Filterung für "Masterkurs"

  • Suche nach "web" oder "SQL"

  • Kombination von Suche und Kurstyp für verfeinerte Ergebnisse

Dies ermöglicht ein vollständig interaktives Erlebnis für Benutzer von Webanwendungen, mobilen Anwendungen oder Clients, die über HTTP kommunizieren. Ausführlichere Informationen finden Sie im vollständigen Video.

Abschließende Überlegungen und nächste Schritte

Am Ende der Lektion hat Tim eine Übersetzung erstellt:

  • Eine funktionierende ASP.NET Core Web API,

  • Filter- und Suchfunktionen,

  • Korrekte Fehlerbehandlung (NotFound, Ok, etc.),

  • Unterstützung für Swagger UI und OpenAPI-Dokumentation.

Tim gibt einen Ausblick darauf, dass er sich als Nächstes mit der herkunftsübergreifenden Ressourcenfreigabe (CORS) befassen wird - eine wichtige Voraussetzung dafür, dass Internet-Clients und verschiedene Domänen ungehindert auf die API zugreifen können.

Tim schließt mit einer Ermutigung: Programmieren ist manchmal mit Hürden verbunden, aber es ist lohnend.

Abschluss

Anhand des Videos von Tim Corey können Sie ein neues Web-API-Projekt in Visual Studio erstellen, Beispieldaten laden, Endpunkte erstellen und eine leistungsstarke Filterung implementieren - alles auf der Grundlage von RESTful-Prinzipien und ASP.NET Core-Standards.

Ganz gleich, ob Sie Webseiten testen, APIs für mobile Geräte erstellen oder mit vorhandenen Ressourcen arbeiten, diese Einrichtung gewährleistet einen schnellen und zuverlässigen Zugriff auf Daten über HTTP-Methoden.

Üben Sie diese Muster in .NET Core weiter, und schon bald werden Sie robuste Webdienste erstellen, die reibungslos zwischen Clients, Servern und dem Internet kommunizieren!

Hero Worlddot related to Beispieldaten und Filterung - Erstellen einer Beispiel-API in C#
Hero Affiliate related to Beispieldaten und Filterung - Erstellen einer Beispiel-API in C#

Verdienen Sie mehr, indem Sie teilen, was Sie lieben

Erstellen Sie Inhalte für Entwickler, die mit .NET, C#, Java, Python oder Node.js arbeiten? Verwandeln Sie Ihr Fachwissen in ein zusätzliches Einkommen!

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an