CRUD-műveletek a ASP.NET Core-ban
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.