CRUD-műveletek a ASP.NET Core-ban

Befejeződött

Pizza szolgáltatásunk támogatja a CRUD műveleteket a pizzák listájához. Ezeket a műveleteket HTTP-parancsok hajtják végre, amelyek ASP.NET Core-attribútumokkal vannak leképezve. Mint látható, a HTTP-parancs GET egy vagy több elem lekérésére szolgál egy szolgáltatásból. Az ilyen művelteket a [HttpGet] attribútum jelöli.

Az alábbi táblázat a pizzaszolgáltatáshoz implementálható négy művelet leképezését mutatja be:

HTTP-műveleti utasítás CRUD művelet ASP.NET Core-attribútum
GET Olvasás [HttpGet]
POST Create [HttpPost]
PUT Frissítés [HttpPut]
DELETE Delete [HttpDelete]

Már látta, hogyan GET működnek a műveletek. További információ a műveletekről PUTés DELETE a műveletekrőlPOST.

POST

Ahhoz, hogy a felhasználók új elemet vegyenek fel a végpontra, az attribútummal kell implementálnia a POST[HttpPost] műveletet. Amikor paraméterként adja át az elemet (ebben a példában egy pizzát) a metódusnak, ASP.NET Core automatikusan konvertálja a végpontra küldött alkalmazásokat/JSON-objektumokat egy feltöltött .NET-objektummá Pizza .

Íme a következő szakaszban implementálni kívánt metódus metódusa Create :

[HttpPost]
public IActionResult Create(Pizza pizza)
{            
    // This code will save the pizza and return a result
}

Az [HttpPost] attribútum leképozza a Create() metódussal küldött http://localhost:5000/pizza HTTP-kéréseketPOST. Ahelyett, hogy egy pizzalistát adnánk vissza, amint azt a módszerrel láttuk, ez a Get() módszer választ ad IActionResult vissza.

IActionResult tudatja az ügyfélrel, hogy a kérés sikeres volt-e, és megadja az újonnan létrehozott pizza azonosítóját. IActionResult szabványos HTTP-állapotkódokat használ, így könnyen integrálható az ügyfelekkel, függetlenül attól, hogy milyen nyelven vagy platformon futnak.

ASP.NET Core
a művelet eredménye
HTTP-állapotkód Leírás
CreatedAtAction 201 A pizzát hozzáadták a memóriabeli gyorsítótárhoz.
A pizza szerepel a válasz törzsében a médiatípusban, a accept HTTP-kérelem fejlécében (alapértelmezés szerint JSON).
BadRequest beleértve 400 A kérelem törzsében a pizza objektum érvénytelen.

Szerencsére olyan segédprogramokkal rendelkezik, ControllerBase amelyek a megfelelő HTTP-válaszkódokat és üzeneteket hozzák létre. A következő gyakorlatban láthatja, hogyan működnek ezek a módszerek.

PUT

A készletünkben lévő pizza módosítása vagy frissítése hasonló az Ön által implementált POST metódushoz, de az [HttpPut] attribútumot használja, és a id frissíteni kívánt objektum mellett a Pizza paramétert is felveszi:

[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
    // This code will update the pizza and return a result
}

Az előző műveletben használt példányok ActionResult megfeleltetve lesznek a megfelelő HTTP-állapotkódhoz a következő táblázatban:

ASP.NET Core
a művelet eredménye
HTTP-állapotkód Leírás
NoContent 204 A pizzát frissítették a memóriabeli gyorsítótárban.
BadRequest 400 A kérelem törzsében az Id érték nem egyezik az útvonal id értékével.
BadRequest beleértve 400 A kérelem törzsében a Pizza objektum érvénytelen.

Törlés...

Az egyik egyszerűbb művelet a DELETE művelet, amely csak a pizza paraméterét veszi igénybe a id memóriabeli gyorsítótárból való eltávolításhoz:

[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
    // This code will delete the pizza and return a result
}

Az előző műveletben használt példányok ActionResult megfeleltetve lesznek a megfelelő HTTP-állapotkódhoz a következő táblázatban:

ASP.NET Core
a művelet eredménye
HTTP-állapotkód Leírás
NoContent 204 A pizzát törölték a memóriabeli gyorsítótárból.
NotFound 404 A megadott id paraméternek megfelelő pizza nem létezik a memóriabeli gyorsítótárban.

A következő leckében található gyakorlat bemutatja, hogyan támogathatja a webes API négy műveletét.

Tesztelje tudását

1.

Tegyük fel, hogy módosítania kell egy termék nevét. Melyik HTTP-parancs a legmegfelelőbb ennek a kérésnek a teljesítésére?

2.

Melyik helyzetben adható vissza 404-es HTTP-állapotkód, és hogyan valósítható ez meg az ASP.NET Core-ban?