Akcje CRUD w ASP.NET Core
- 5 min
Nasza usługa pizzy obsługuje operacje CRUD na potrzeby listy pizz. Te operacje są wykonywane za pomocą czasowników HTTP, które są mapowane za pośrednictwem atrybutów ASP.NET Core. Jak widać, czasownik HTTP GET jest używany do pobierania co najmniej jednego elementu z usługi. Taka akcja otrzymuje adnotację w postaci atrybutu [HttpGet].
W poniższej tabeli przedstawiono mapowanie czterech operacji implementujących usługę pizzy:
| Czasownik akcji HTTP | Operacja CRUD | Atrybut platformy ASP.NET Core |
|---|---|---|
GET |
Przeczytaj | [HttpGet] |
POST |
Utworzenie | [HttpPost] |
PUT |
Zaktualizuj | [HttpPut] |
DELETE |
Usuń | [HttpDelete] |
Pokazano już, jak GET działają akcje. Dowiedzmy się więcej o POSTakcjach , PUTi DELETE .
Bez znajomości kontekstu, w którym "POST" jest używany, nie mogę zaproponować dokładnego tłumaczenia. Jeżeli dotyczy HTTP, pozostaw jako "POST".
Aby umożliwić użytkownikom dodawanie nowego elementu do punktu końcowego, należy zaimplementować POST akcję przy użyciu atrybutu [HttpPost] . Po przekazaniu elementu (w tym przykładzie pizzy) do metody jako parametru ASP.NET Core automatycznie konwertuje wszystkie aplikacje/dane JSON wysyłane do punktu końcowego do wypełnionego obiektu platformy .NET Pizza .
Oto sygnatura Create metody, która zostanie zaimplementowana w następnej sekcji:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
Atrybut [HttpPost] mapuje żądania HTTP POST wysyłane do http://localhost:5000/pizza przy użyciu Create() metody . Zamiast zwracać listę pizz, jak widzieliśmy przy Get() użyciu metody, ta metoda zwraca IActionResult odpowiedź.
IActionResult informuje klienta, czy żądanie zakończyło się pomyślnie i podaje identyfikator nowo utworzonej pizzy.
IActionResult Używa standardowych kodów stanu HTTP, dzięki czemu można łatwo integrować się z klientami niezależnie od języka lub platformy, na której są uruchomione.
| ASP.NET Core wynik akcji |
Kod stanu HTTP | opis |
|---|---|---|
CreatedAtAction |
201 | Pizza została dodana do pamięci podręcznej w pamięci. Pizza znajduje się w treści odpowiedzi w typie nośnika, zgodnie z definicją w nagłówku accept żądania HTTP (domyślnie JSON). |
Domniemany wynik BadRequest |
400 | Obiekt pizza treści żądania jest nieprawidłowy. |
Na szczęście ma metody narzędziowe ControllerBase , które tworzą odpowiednie kody odpowiedzi HTTP i komunikaty. Zobaczysz, jak te metody działają w następnym ćwiczeniu.
ODŁÓŻ
Modyfikowanie lub aktualizowanie pizzy w naszym spisie jest podobne do wdrożonej metody POST, ale używa atrybutu [HttpPut] i przyjmuje id parametr oprócz Pizza obiektu, który należy zaktualizować:
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Każde ActionResult wystąpienie używane w poprzedniej akcji jest mapowane na odpowiedni kod stanu HTTP w poniższej tabeli:
| ASP.NET Core wynik akcji |
Kod stanu HTTP | opis |
|---|---|---|
NoContent |
204 | Pizza została zaktualizowana w pamięci podręcznej. |
BadRequest |
400 | Wartość Id treści żądania jest niezgodna z wartością id trasy. |
Domniemany wynik BadRequest |
400 | Obiekt Pizza treści żądania jest nieprawidłowy. |
USUŃ
Jedną z łatwiejszych akcji do zaimplementowania jest DELETE akcja wykonywana tylko w id parametrze pizzy do usunięcia z pamięci podręcznej w pamięci:
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Każde ActionResult wystąpienie używane w poprzedniej akcji jest mapowane na odpowiedni kod stanu HTTP w poniższej tabeli:
| ASP.NET Core wynik akcji |
Kod stanu HTTP | opis |
|---|---|---|
NoContent |
204 | Pizza została usunięta z pamięci podręcznej w pamięci. |
NotFound |
404 | Pizza zgodna z podanym id parametrem nie istnieje w pamięci podręcznej w pamięci. |
Ćwiczenie w następnej lekcji pokazuje, jak obsługiwać każdą z czterech akcji w internetowym interfejsie API.