Akce CRUD v ASP.NET Core
Naše služba pizzy podporuje operace C reate, R ead, U pdate, D elete (CRUD) pro seznam pizz. Tyto operace se provádějí pomocí operací akcí HTTP, které se mapují pomocí ASP.NET Core atributů. Jak jste viděli, příkaz akce HTTP GET slouží 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é pro naši pizzerii provádíme:
| Příkaz akce HTTP | Operace CRUD | Atribut ASP.NET Core |
|---|---|---|
| GET | Číst | [HttpGet] |
| POST | Vytvořit | [HttpPost] |
| PUT | Aktualizovat | [HttpPut] |
| DELETE | Odstranit | [HttpDelete] |
Už jste viděli, jak fungují akce GET. Pojďme se dozvědět více o akcích POST, PUT a DELETE.
POST
Aby měl koncový bod možnost přidat novou položku, musíme implementovat akci POST pomocí [HttpPost]. Předáním položky (v tomto příkladu Pizza) do metody jako parametru převede ASP.NET Core automaticky všechny aplikace/json odeslané do koncového bodu na naplněný objekt .NET Pizza.
Tady je podpis metody, Create kterou budete implementovat v další části:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
Atribut [HttpPost] bude mapovat požadavky HTTP POST odeslané http://localhost:5000/pizza do metody Create() . Místo vrácení seznamu pizz, jak jsme viděli pomocí metody , tato metoda vrátí odpověď, která klientovi umožní vědět, jestli byla žádost úspěšná, a ID nově Get() IActionResult vytvořené pizzy. To se provádí pomocí standardních stavových kódů HTTP, takže se snadno integruje s klienty bez ohledu na jazyk nebo platformu, na které běží.
| Výsledek akce ASP.NET Core |
Stavový kód HTTP | Popis |
|---|---|---|
CreatedAtAction |
201 | Pizzu jsme přidali do mezipaměti v paměti. Pizza je součástí textu odpovědi v typu média, jak je definováno v hlavičce požadavku accept HTTP (ve výchozím nastavení JSON). |
Implikuje se BadRequest. |
400 | Objekt pizza textu požadavku je neplatný. |
Naštěstí má nástrojové metody, které pro nás vytvoří odpovídající kódy odpovědí ControllerBase a zprávy HTTP. V dalším cvičení uvidíte, jak tyto postupy fungují.
PUT
Úprava nebo aktualizace pizzy v inventáři se podobá metodě POST, kterou jsme implementovali, ale použije atribut [HttpPut] a kromě objektu Pizza, který je potřeba aktualizovat, použije atribut [HttpPut].
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Každý výsledek akce (ActionResult) použitý v předchozí akci se namapuje k odpovídajícímu stavovému kódu HTTP v následující tabulce.
| Výsledek akce ASP.NET Core |
Stavový kód HTTP | Popis |
|---|---|---|
NoContent |
204 | Pizzu jsme aktualizovali 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í, které je možné implementovat, je akce DELETE, která provede odebrání z mezipaměti v paměti pouze ID pizzy.
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Každý výsledek akce (ActionResult) použitý v předchozí akci se namapuje k odpovídajícímu stavovému kódu HTTP v následující tabulce.
| Výsledek akce ASP.NET Core |
Stavový kód HTTP | Popis |
|---|---|---|
NoContent |
204 | Pizzu odstranili z mezipaměti v paměti. |
NotFound |
404 | Pizza odpovídající zadaném id parametru v paměti neexistuje. |
V následujících částech se dozvíte, jak každou z těchto čtyř akcí podporovat ve webovém rozhraní API.
Prověřte své znalosti
Potřebujete pomoc? Projděte si našeho průvodce odstraňováním potíží nebo nahlaste potíže a uveďte konkrétní připomínky.