CRUD-åtgärder i ASP.NET Core
Vår pizzatjänst stöder CRUD-åtgärder för en lista över pizzor. Dessa åtgärder utförs via HTTP-verb, som mappas via ASP.NET Core-attribut. Som du såg används HTTP-verbet GET
för att hämta ett eller flera objekt från en tjänst. Den typen av åtgärd kommenteras med [HttpGet]
-attributet.
I följande tabell visas mappningen av de fyra åtgärder som du implementerar för pizzatjänsten:
HTTP-åtgärdsverb | CRUD-åtgärd | ASP.NET Core-attribut |
---|---|---|
GET |
Lästa | [HttpGet] |
POST |
Skapa | [HttpPost] |
PUT |
Uppdatera | [HttpPut] |
DELETE |
Delete | [HttpDelete] |
Du har redan sett hur GET
åtgärder fungerar. Nu ska vi lära oss mer om POST
, PUT
och DELETE
åtgärder.
POST
Om du vill göra det möjligt för användare att lägga till ett nytt objekt i slutpunkten måste du implementera POST
åtgärden med hjälp av attributet [HttpPost]
. När du skickar objektet (i det här exemplet en pizza) till metoden som en parameter konverterar ASP.NET Core automatiskt alla program/JSON som skickas till slutpunkten till ett ifyllt .NET-objekt Pizza
.
Här är metodsignaturen för den Create
metod som du implementerar i nästa avsnitt:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
Attributet [HttpPost]
mappar HTTP-begäranden POST
som skickas till http://localhost:5000/pizza
med hjälp Create()
av -metoden. I stället för att returnera en lista över pizzor, som vi såg med metoden, returnerar den Get()
här metoden ett IActionResult
svar.
IActionResult
meddelar klienten om begäran lyckades och tillhandahåller ID:t för den nyligen skapade pizzan.
IActionResult
använder standard-HTTP-statuskoder, så att de enkelt kan integreras med klienter oavsett vilket språk eller vilken plattform de körs på.
ASP.NET Core åtgärdsresultat |
HTTP-statuskod | beskrivning |
---|---|---|
CreatedAtAction |
201 | Pizzan lades till i minnesintern cache. Pizzan ingår i svarstexten i medietypen enligt definitionen i accept HTTP-begärandehuvudet (JSON som standard). |
BadRequest är underförstått |
400 | Begärandetextens pizza -objekt är ogiltigt. |
Lyckligtvis ControllerBase
har verktygsmetoder som skapar lämpliga HTTP-svarskoder och -meddelanden åt dig. Du ser hur dessa metoder fungerar i nästa övning.
PUT
Att ändra eller uppdatera en pizza i vårt lager liknar den POST-metod som du implementerade, men den [HttpPut]
använder attributet och tar in parametern id
utöver det Pizza
objekt som behöver uppdateras:
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Varje ActionResult
instans som används i föregående åtgärd mappas till motsvarande HTTP-statuskod i följande tabell:
ASP.NET Core åtgärdsresultat |
HTTP-statuskod | beskrivning |
---|---|---|
NoContent |
204 | Pizzan uppdaterades i minnesintern cache. |
BadRequest |
400 | Begärandetextens Id -värde matchar inte vägens id -värde. |
BadRequest är underförstått |
400 | Begärandetextens Pizza -objekt är ogiltigt. |
DELETE
En av de enklare åtgärderna att implementera är åtgärden DELETE
, som bara tar in parametern id
i pizzan för att ta bort från minnesintern cache:
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Varje ActionResult
instans som används i föregående åtgärd mappas till motsvarande HTTP-statuskod i följande tabell:
ASP.NET Core åtgärdsresultat |
HTTP-statuskod | beskrivning |
---|---|---|
NoContent |
204 | Pizzan togs bort från minnesintern cacheminnet. |
NotFound |
404 | En pizza som matchar den angivna id parametern finns inte i minnesintern cache. |
Övningen i nästa lektion visar hur du stöder var och en av de fyra åtgärderna i webb-API:et.