CRUD-acties in ASP.NET Core
Onze pizzaservice ondersteunt CRUD-bewerkingen voor een lijst met pizza's. Deze bewerkingen worden uitgevoerd via HTTP-werkwoorden, die worden toegewezen via ASP.NET Core-kenmerken. Zoals u hebt gezien, wordt het HTTP-werkwoord GET
gebruikt om een of meer items op te halen uit een service. Een dergelijke actie wordt voorzien van het [HttpGet]
-kenmerk.
In de volgende tabel ziet u de toewijzing van de vier bewerkingen die u implementeert voor de pizzaservice:
HTTP-actieopdracht | CRUD-bewerking | ASP.NET Core-kenmerk |
---|---|---|
GET |
Read | [HttpGet] |
POST |
Maken | [HttpPost] |
PUT |
Bijwerken | [HttpPut] |
DELETE |
Delete | [HttpDelete] |
U hebt al gezien hoe GET
acties werken. Laten we meer weten over POST
, PUT
en DELETE
acties.
POSTEN
Als u wilt dat gebruikers een nieuw item aan het eindpunt kunnen toevoegen, moet u de POST
actie implementeren met behulp van het [HttpPost]
kenmerk. Wanneer u het item (in dit voorbeeld een pizza) doorgeeft aan de methode als parameter, converteert ASP.NET Core elke toepassing/JSON die naar het eindpunt wordt verzonden, automatisch naar een gevuld .NET-object Pizza
.
Hier volgt de methodehandtekening van de Create
methode die u in de volgende sectie gaat implementeren:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
Het [HttpPost]
kenmerk wijst HTTP-aanvragen POST
toe die met behulp van de http://localhost:5000/pizza
methode worden Create()
verzonden. In plaats van een lijst met pizza's te retourneren, zoals we met de Get()
methode hebben gezien, retourneert deze methode een IActionResult
antwoord.
IActionResult
laat de client weten of de aanvraag is geslaagd en geeft de id van de zojuist gemaakte pizza.
IActionResult
maakt gebruik van standaard HTTP-statuscodes, zodat deze eenvoudig kan worden geïntegreerd met clients, ongeacht de taal of het platform waarop ze worden uitgevoerd.
ASP.NET Core resultaat van actie |
HTTP-statuscode | Beschrijving |
---|---|---|
CreatedAtAction |
201 | De pizza is toegevoegd aan de cache in het geheugen. De pizza wordt opgenomen in de hoofdtekst van het antwoord in het mediatype, zoals gedefinieerd in de accept HTTP-aanvraagheader (standaard JSON). |
BadRequest wordt geïmpliceerd |
400 | Object pizza van de aanvraagtekst is ongeldig. |
Gelukkig ControllerBase
zijn er hulpprogrammamethoden waarmee de juiste HTTP-antwoordcodes en -berichten voor u worden gemaakt. In de volgende oefening ziet u hoe deze methoden werken.
PUT
Het wijzigen of bijwerken van een pizza in onze voorraad is vergelijkbaar met de POST-methode die u hebt geïmplementeerd, maar het gebruikt het [HttpPut]
kenmerk en neemt de id
parameter in aanvulling op het Pizza
object dat moet worden bijgewerkt:
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Elk ActionResult
exemplaar dat in de voorgaande actie wordt gebruikt, wordt toegewezen aan de bijbehorende HTTP-statuscode in de volgende tabel:
ASP.NET Core resultaat van actie |
HTTP-statuscode | Beschrijving |
---|---|---|
NoContent |
204 | De pizza is bijgewerkt in de cache in het geheugen. |
BadRequest |
400 | De Id -waarde van de aanvraagtekst komt niet overeen met de id - waarde van de route. |
BadRequest wordt geïmpliceerd |
400 | Object Pizza van de aanvraagtekst is ongeldig. |
DELETE
Een van de eenvoudigere acties die u kunt implementeren, is de DELETE
actie die alleen de id
parameter van de pizza uitvoert om uit de cache in het geheugen te verwijderen:
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Elk ActionResult
exemplaar dat in de voorgaande actie wordt gebruikt, wordt toegewezen aan de bijbehorende HTTP-statuscode in de volgende tabel:
ASP.NET Core resultaat van actie |
HTTP-statuscode | Beschrijving |
---|---|---|
NoContent |
204 | De pizza is verwijderd uit de cache in het geheugen. |
NotFound |
404 | Een pizza die overeenkomt met de opgegeven id parameter bestaat niet in de cache in het geheugen. |
De oefening in de volgende les laat zien hoe u elk van de vier acties in de web-API kunt ondersteunen.