Akce CRUD v ASP.NET Core
Naše služba pizza podporuje operace CRUD pro seznam pizz. Tyto operace se provádějí prostřednictvím příkazů HTTP, které se mapují prostřednictvím atributů ASP.NET Core. Jak jste viděli, příkaz HTTP GET
se používá k načtení jedné nebo více položek ze služby. Taková akce je anotována atributem [HttpGet]
.
Následující tabulka ukazuje mapování čtyř operací, které implementujete pro službu pizzy:
Příkaz akce HTTP | Operace CRUD | Atribut ASP.NET Core |
---|---|---|
GET |
Čteno | [HttpGet] |
POST |
Vytvoření | [HttpPost] |
PUT |
Aktualizovat | [HttpPut] |
DELETE |
Odstranění | [HttpDelete] |
Už jste viděli, jak GET
fungují akce. Pojďme se dozvědět více o POST
, PUT
a DELETE
akcích.
POST
Pokud chcete uživatelům povolit přidání nové položky do koncového bodu, musíte akci implementovat POST
pomocí atributu [HttpPost]
. Když předáte položku (v tomto příkladu pizzu) do metody jako parametr, ASP.NET Core automaticky převede všechny aplikace/JSON odeslané do koncového bodu na naplněný objekt .NET Pizza
.
Tady je podpis Create
metody metody, kterou implementujete v další části:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
Atribut [HttpPost]
mapuje požadavky HTTP POST
odeslané http://localhost:5000/pizza
pomocí Create()
metody. Místo vrácení seznamu pizz, jak jsme viděli s Get()
metodou, vrátí tato metoda IActionResult
odpověď.
IActionResult
informuje klienta, jestli žádost proběhla úspěšně, a poskytne ID nově vytvořené pizzy. IActionResult
používá standardní stavové kódy HTTP, takže se může snadno integrovat s klienty bez ohledu na jazyk nebo platformu, na které běží.
ASP.NET Core ASP.NET Core |
Stavový kód HTTP | Popis |
---|---|---|
CreatedAtAction |
201 | Pizza byla přidána do mezipaměti v paměti. Pizza je součástí textu odpovědi v typu média, jak je definováno v accept hlavičce požadavku HTTP (ve výchozím nastavení JSON). |
Implikuje se BadRequest . |
400 | Objekt pizza textu požadavku je neplatný. |
Naštěstí má utility metody, ControllerBase
které vytvářejí odpovídající kódy odpovědí HTTP a zprávy za vás. V dalším cvičení se dozvíte, jak tyto metody fungují.
PUT
Úprava nebo aktualizace pizzy v našem inventáři je podobná metodě POST, kterou jste implementovali, ale používá [HttpPut]
atribut a přebírá id
parametr kromě objektu Pizza
, který je potřeba aktualizovat:
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Každá ActionResult
instance použitá v předchozí akci se mapuje na odpovídající stavový kód HTTP v následující tabulce:
ASP.NET Core ASP.NET Core |
Stavový kód HTTP | Popis |
---|---|---|
NoContent |
204 | Pizza byla aktualizována v mezipaměti v paměti. |
BadRequest |
400 | Hodnota Id textu požadavku neodpovídá hodnotě id trasy. |
Implikuje se BadRequest . |
400 | Objekt Pizza textu požadavku je neplatný. |
DELETE
Jednou z jednodušších akcí k implementaci je DELETE
akce, která provede pouze id
parametr pizzy, která se odebere z mezipaměti v paměti:
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Každá ActionResult
instance použitá v předchozí akci se mapuje na odpovídající stavový kód HTTP v následující tabulce:
ASP.NET Core ASP.NET Core |
Stavový kód HTTP | Popis |
---|---|---|
NoContent |
204 | Pizza byla odstraněna z mezipaměti v paměti. |
NotFound |
404 | V mezipaměti v paměti neexistuje pizza, která odpovídá zadanému id parametru. |
Cvičení v další lekci ukazuje, jak podporovat každou ze čtyř akcí ve webovém rozhraní API.