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

Andere Kategorien

POST-Befehle verknüpfen: Ein tiefer Einblick von Tim Corey

Tim Corey
26m 16s

Beim Arbeiten mit APIs und Webdiensten ist das Verständnis von POST-Befehlen entscheidend, um Daten an einen Server zu senden. In dieser Lektion führt uns Tim Corey durch die Verkabelung von POST-Befehlen in einem Postman-Clone-Projekt. Tim erklärt den Unterschied zwischen HTTP-Anfragemethoden und zeigt, wie man POST-Anfragen korrekt strukturiert, den Anfragekörper verwaltet und Verantwortlichkeiten zwischen der Benutzeroberfläche (UI) und dem Bibliothekscode trennt.

Wenn Sie praktische Erfahrungen mit HTTP-Methoden sammeln möchten, bietet diese Lektion ein praxisnahes Beispiel, wie man Daten an ein Zielressource sendet, HTTP-Header verwaltet und Antworten auf saubere und wartbare Weise behandelt. Lassen Sie uns in Tims schrittweisen Ansatz eintauchen.

Einführung in POST-Befehle

Tim beginnt mit einem Rückblick auf die Interface-Updates aus der vorherigen Lektion und stellt fest, dass das System derzeit nur GET-Anfragen unterstützt. Er erklärt, dass sich diese Lektion darauf konzentriert, POST-Anfragen zu ermöglichen, damit Benutzer Daten an einem Server senden können, beispielsweise JSON-Ausgabe oder Formulardaten.

Er betont, dass die Trennung des UI-Codes vom Bibliothekscode der Schlüssel ist. Die UI sollte Elemente wie Dropdowns, HTML-Formulare und Eingabefelder verwalten, während die Bibliothek die Erstellung von HTTP-Anfragen, Inhaltsformatierung und das Senden von Daten an den Server übernimmt.

Tim weist auch darauf hin, dass dieses Projekt als Portfolio-Beispiel dienen kann, es jedoch wichtig ist, dass Entwickler sicherstellen, dass ihr Portfolio einzigartig ist. Er verweist auf seinen Dev Pass unter timcorey.com als Möglichkeit, das Verständnis von C# und HTTP-Anfragemethoden zu vertiefen.

Verständnis der aktuellen Einrichtung

In Visual Studio zeigt Tim die aktuelle Projekteinstellung. Die UI erlaubt das Auswählen einer Anfragemethode (GET oder POST) und das Eingeben einer URL. Derzeit wird beim Klicken auf 'Go' nur eine GET-Anfrage ausgeführt, die Antwort wird in einem Ergebnisfenster angezeigt.

Ein kleineres Problem, das er anspricht, ist, dass nach einer GET-Anfrage der gesamte Text im Ergebnisfenster hervorgehoben wird, was zur Anzeige von Informationen nicht ideal ist. Tim behebt dies, indem er den Fokus auf das Tab-Element statt auf das Textfeld einstellt. Dies verhindert automatische Textauswahl und verbessert das Benutzererlebnis.

Lesen des Dropdowns und Bestimmen der HTTP-Aktion

Um POST-Befehle zu implementieren, erklärt Tim zunächst, wie man die Dropdown-Auswahl liest, um die HTTP-Anfragemethode zu bestimmen. Er erstellt eine Variable, um die geparste Anfragemethode zu speichern, und verwendet TryParse, um den Dropdown-String-Wert in eine HTTP-Aktion zu konvertieren.

Wenn die ausgewählte Methode ungültig ist, zeigt das System eine Fehlermeldung an ("Ungültiges HTTP-Verb") und versucht nicht die Anfrage auszuführen. Sobald validiert, kann die Anfragemethode verwendet werden, um festzustellen, ob eine GET-Anfrage, POST-Anfrage oder andere HTTP-Methoden wie DELETE oder PATCH durchgeführt werden soll.

Vorbereiten des Backend zur Handhabung von POST-Anfragen

Der nächste Schritt besteht darin, die Bibliothek zu aktualisieren, um POST-Anfragen zu handhaben. Tim erklärt, dass sich POST-Befehle von GET-Anfragen unterscheiden, da sie in der Regel einen Anfragekörper benötigen, um Daten an die Zielressource zu senden. Diese Daten könnten JSON, Binärdaten oder Formulardaten sein.

Tim betont die Trennung von UI-Verantwortlichkeiten vom Bibliothekscode. Die UI übergibt den Body-Inhalt als String und die Bibliothek konvertiert ihn in den richtigen HTTP-Inhaltstyp für die Anfrage. Dieses Design stellt sicher, dass generische Operationen wie das Formatieren von Inhalten in der Bibliothek und nicht in der UI behandelt werden.

Erstellen einer Überladung für POST-Anfragen

Tim erstellt eine Überladung für CallApiAsync, die drei Parameter akzeptiert:

  1. URL – die Adresse der Zielressource

  2. Aktion – die HTTP-Anfragemethode (GET, POST, etc.)

  3. Inhalt – der Anfragekörper als String

Dies ermöglicht Entwicklern, JSON-Ausgaben, Formulardaten oder andere kodierte Daten direkt von der UI an die Bibliothek zu übergeben. Indem POST-Anfragen auf diese Weise behandelt werden, kann dieselbe Bibliothek auch zukünftige HTTP-Methoden wie PUT, PATCH oder DELETE unterstützen.

Konvertieren von String-Inhalten in HTTP-Inhalt

Tim zeigt, wie man den String-Inhalt von der UI in StringContent konvertiert, welches von HTTP-Inhalt erbt. Er setzt die Kodierung auf UTF8 und den Inhaltstyp auf application/json, was geeignet für das Senden von strukturierten Daten an einen Server ist.

Dieser Schritt stellt sicher, dass der Anfragekörper ordnungsgemäß formatiert ist, bevor gesendet wird. Tim hebt hervor, dass diese Verantwortlichkeitentrennung es Entwicklern ermöglicht, POST-Befehle zu nutzen, ohne sich um HTTP-Header, Kodierung oder Inhaltsumwandlung in der UI zu kümmern.

Aktualisieren der Schnittstelle und Testen von POST-Anfragen

Sobald die Bibliothek bereit ist, aktualisiert Tim die UI, um die neue überladene Methode aufzurufen. Er testet POST-Anfragen mit JSONPlaceholder und formatiert den Anfragekörper manuell:

{
  "title": "Dies ist mein Titel",
  "body": "Dies ist mein Haupttext",
  "userId": 3
}

Tim erklärt, dass eine POST-Anfrage diese Daten an die Zielressource sendet und die Antwort den Erfolg anzeigt. Zunächst tritt ein Fehler auf, weil das HTTP-Aktions-Enum POST nicht enthält. Das Hinzufügen von POST löst dies und ermöglicht es dem System, POST-Befehle erfolgreich zu senden.

Umgang mit POST-Anfragen in der Bibliothek

Tim zeigt, wie man POST-Befehle in der Bibliothek mit einer Switch-Anweisung auf die HTTP-Anfragemethode umgeht. Bei GET verwendet das System GetAsync; bei POST verwendet es PostAsync mit dem formatierten Anfragekörper.

Das Testen des POST-Befehls gibt eine Antwort mit einer ID zurück (101 in JSONPlaceholder), was bestätigt, dass die Anfrage funktionierte. Tim bemerkt, dass diese Test-API zwar keine Daten in einer Datenbank speichert, es jedoch nützlich ist, um die POST-Anfragefunktionalität zu validieren.

Wichtige Erkenntnisse und zukünftige Arbeiten

Tim fasst die Lektion zusammen:

  • Das Dropdown unterstützt jetzt GET- und POST-Methoden.

  • Die UI gibt den Anfragekörper an die Bibliothek weiter.

  • Die Bibliothek konvertiert den String in HTTP-Inhalt und führt die korrekte HTTP-Anfrage aus.

  • POST-Befehle geben gültige Antworten zurück, die im Ergebnisfenster angezeigt werden können.

Er ermutigt die Lernenden, in zukünftigen Lektionen PUT-, PATCH- und DELETE-Befehle zu implementieren und hebt hervor, dass das bestehende Framework die Hinzufügung neuer HTTP-Methoden einfach macht.

Tim rät auch dazu, Über-Engineering oder das Hinzufügen ungenutzten Codes zu vermeiden, was zu diskonnektierten Funktionen oder verwaisten Elementen führen könnte.

Abschluss

Tim Corey's Video bietet einen klaren, praktischen Ansatz zu POST-Befehlen in einem Postman-Clone-Projekt. Durch die Trennung von UI-Verantwortlichkeiten vom Bibliothekscode, die Umwandlung von String-Daten in HTTP-Inhalt und das effektive Behandeln von Antworten, erhalten Entwickler praktische Erfahrungen mit HTTP-Anfragemethoden.

Diese Lektion demonstriert nicht nur das Senden von Daten an einen Server, sondern legt auch die Grundlage für den Umgang mit anderen HTTP-Methoden, Headern und komplexeren Anfragen und bietet damit ein starkes Praxisbeispiel für das Erlernen von HTTP-Interaktionen in C#.

Hero Worlddot related to POST-Befehle verknüpfen: Ein tiefer Einblick von Tim Corey
Hero Affiliate related to POST-Befehle verknüpfen: Ein tiefer Einblick von Tim Corey

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