Akcje CRUD w ASP.NET Core
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 POST
akcjach , PUT
i 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.