CRUD-Aktionen in ASP.NET Core
- 5 Minuten
Unser Pizzadienst unterstützt CRUD-Vorgänge für eine Liste von Pizzas. Diese Vorgänge werden über HTTP-Verben ausgeführt, die über ASP.NET Core-Attribute zugeordnet werden. Wie Sie gesehen haben, wird das HTTP-Verb GET verwendet, um mindestens ein Element aus einem Dienst abzurufen. Solche Aktionen werden mit dem Attribut [HttpGet] versehen.
Die folgende Tabelle zeigt die Zuordnung der vier Vorgänge, die Sie für den Pizzadienst implementieren:
| HTTP-Aktionsverb | CRUD-Vorgang | ASP.NET Core-Attribut |
|---|---|---|
GET |
Lesen | [HttpGet] |
POST |
Erstellen | [HttpPost] |
PUT |
Aktualisieren | [HttpPut] |
DELETE |
Löschen | [HttpDelete] |
Sie haben bereits gesehen, wie GET-Aktionen funktionieren. Erfahren Sie mehr über POST-, PUT- und DELETE-Aktionen.
POST
Damit Benutzer dem Endpunkt ein neues Element hinzufügen können, müssen Sie die POST-Aktion mithilfe des [HttpPost]-Attributs implementieren. Wenn Sie das Element (in diesem Beispiel eine Pizza) als Parameter an die Methode übergeben, konvertiert ASP.NET Core automatisch den gesamten Anwendungs-/JSON-Code, der an den Endpunkt gesendet wird, in ein mit Daten aufgefülltes .NET-Pizza-Objekt.
Dies ist die Methodensignatur der Create-Methode, die Sie im nächsten Abschnitt implementieren:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
Das [HttpPost]-Attribut ordnet an POST gesendete HTTP-http://localhost:5000/pizza-Anforderungen mithilfe der Create()-Methode zu. Anstatt eine Liste von Pizzas zurückzugeben (wie bei der Get()-Methode), gibt diese Methode eine IActionResult-Antwort zurück.
IActionResult informiert den Client darüber, ob die Anforderung erfolgreich war, und gibt die ID der neu erstellten Pizza an.
IActionResult verwendet dazu standardmäßige HTTP-Statuscodes, sodass die Integration mit Clients unabhängig von der Sprache oder Plattform, mit/auf der sie ausgeführt werden, problemlos möglich ist.
| ASP.NET Core Aktionsergebnis |
HTTP-Statuscode | BESCHREIBUNG |
|---|---|---|
CreatedAtAction |
201 | Die Pizza wurde dem In-Memory-Cache hinzugefügt. Die Pizza ist, wie im HTTP-Anforderungsheader accept (standardmäßig JSON) definiert, im Antworttext im Medientyp enthalten. |
impliziert BadRequest |
400 | Das pizza-Objekt des Anforderungstexts ist ungültig. |
Glücklicherweise verfügt ControllerBase über Hilfsmethoden, die die entsprechenden HTTP-Antwortcodes und -Nachrichten für Sie erstellen. Wie diese Methoden funktionieren, erfahren Sie in der nächsten Übung.
PUT
Das Ändern oder Aktualisieren einer Pizza in unserem Bestand ähnelt der POST-Methode, die Sie implementiert haben. Aber diese Methode verwendet das Attribut [HttpPut] mit dem Parameter id zusätzlich zum Objekt Pizza, das aktualisiert werden muss:
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Jede in der Aktion oben verwendete ActionResult-Instanz wird in der folgenden Tabelle dem entsprechenden HTTP-Statuscode zugeordnet:
| ASP.NET Core Aktionsergebnis |
HTTP-Statuscode | BESCHREIBUNG |
|---|---|---|
NoContent |
204 | Die Pizzadaten wurden im In-Memory-Cache aktualisiert. |
BadRequest |
400 | Der Id-Wert des Anforderungstexts entspricht nicht dem id-Wert der Route. |
impliziert BadRequest |
400 | Das Pizza-Objekt des Anforderungstexts ist ungültig. |
Delete
Eine der einfacher zu implementierenden Aktionen ist die Aktion DELETE, die nur den Parameter id der Pizza verwendet, die aus dem In-Memory-Cache entfernt werden soll:
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Jede in der Aktion oben verwendete ActionResult-Instanz wird in der folgenden Tabelle dem entsprechenden HTTP-Statuscode zugeordnet:
| ASP.NET Core Aktionsergebnis |
HTTP-Statuscode | BESCHREIBUNG |
|---|---|---|
NoContent |
204 | Die Pizza wurde aus dem In-Memory-Cache gelöscht. |
NotFound |
404 | Eine Pizza, die mit dem angegebenen id-Parameter übereinstimmt, ist nicht im In-Memory-Cache enthalten. |
In der Übung in der folgenden Lektion wird veranschaulicht, wie Sie jede dieser vier Aktionen in der Web-API unterstützen.
Überprüfen Sie Ihr Wissen
Feedback
War diese Seite hilfreich?
No
Benötigen Sie Hilfe zu diesem Thema?
Möchten Sie versuchen, Ask Learn zu verwenden, um Sie durch dieses Thema zu klären oder zu leiten?