Akcje CRUD w ASP.NET Core

Ukończone

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 Delete [HttpDelete]

Pokazano już, jak GET działają akcje. Dowiedzmy się więcej o POSTakcjach , PUTi DELETE .

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.

DELETE

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.

Sprawdź swoją wiedzę

1.

Załóżmy, że musisz zaktualizować nazwę produktu. Który czasownik akcji HTTP jest najlepszym rozwiązaniem dla tego żądania?

2.

W jakim przypadku najbardziej odpowiednie jest zwrócenie kodu stanu HTTP 404 i jak to zrobić na platformie ASP.NET Core?