Accions CRUD d'ASP.NET Core
El nostre servei de pizza admet operacions CRUD per obtenir una llista de pizzes. Aquestes operacions es fan a través de verbs HTTP, que s'assignen a través d'atributs d'ASP.NET Core. Com heu vist, el verb HTTP GETes fa servir per recuperar un o més elements d'un servei. Aquesta acció s'anota amb l'atribut [HttpGet].
A la taula següent es mostra l'assignació de les quatre operacions que s'estan implementant per al servei de pizzes:
| Verb dacció HTTP | Operació CRUD | Atribut d'ASP.NET Core |
|---|---|---|
GET |
Lectura | [HttpGet] |
POST |
Crear | [HttpPost] |
PUT |
Update | [HttpPut] |
DELETE |
Eliminar | [HttpDelete] |
Ja ha vist com funcionen les accions GET. Obtindrem més informació sobre les accions POST, PUTi DELETE.
POST
Per permetre que els usuaris afegeixin un nou element al punt de connexió, heu d'implementar l'acció POSTmitjançant l'atribut [HttpPost]. En passar l'element (en aquest exemple, una pizza) al mètode com un paràmetre, ASP.NET Core converteix automàticament qualsevol aplicació o JSON enviat al punt de connexió en un objecte Pizzade .NET emplenat.
Aquesta és la signatura del mètode Createque implementarà a la secció següent:
[HttpPost]
public IActionResult Create(Pizza pizza)
{
// This code will save the pizza and return a result
}
L'atribut [HttpPost]assigna a les sol·licituds HTTP POSTenviades http://localhost:5000/pizzamitjançant el mètode Create(). En lloc de tornar una llista de pizzes, com vam veure amb el mètode Get(), aquest mètode torna una resposta IActionResult.
IActionResultpermet al client saber si la sol·licitud s'ha sol·licitat correctament i proporciona l'identificador de la pizza acabada de crear. IActionResultutilitza codis d'estat HTTP estàndard, per la qual cosa s'integra fàcilment amb els clients, independentment del llenguatge o la plataforma on s'executin.
| Resultat de l'acció d'ASP.NET Core |
Codi d'estat HTTP | Descripció |
|---|---|---|
CreatedAtAction |
201 | La pizza s'ha afegit a la memòria cau en memòria. La pizza s'inclou al cos de la resposta del tipus de mitjà segons la definició de la capçalera de sol·licitud HTTP accept(JSON per defecte). |
BadRequestestà implícit. |
400 | L'objecte pizzadel cos de la sol·licitud no és vàlid. |
Afortunadament, ControllerBaseteniu mètodes d'utilitat que creen els missatges i codis de resposta HTTP adequats automàticament. Veureu com funcionen aquests mètodes en l'exercici següent.
PUT
La modificació o actualització d'una pizza de l'inventari és similar al mètode POST que va implementar, encara que utilitza l'atribut [HttpPut]i pren el paràmetre ida més de l'objecte Pizzaque cal actualitzar:
[HttpPut("{id}")]
public IActionResult Update(int id, Pizza pizza)
{
// This code will update the pizza and return a result
}
Cada instància ActionResultemprada a l'acció anterior s'assigna al codi d'estat HTTP corresponent a la taula següent.
| Resultat de l'acció d'ASP.NET Core |
Codi d'estat HTTP | Descripció |
|---|---|---|
NoContent |
204 | La pizza s'ha actualitzat a la memòria cau en memòria. |
BadRequest |
400 | El valor Iddel cos de sol·licitud no coincideix amb el valor idde la ruta. |
BadRequestestà implícit. |
400 | L'objecte Pizzadel cos de la sol·licitud no és vàlid. |
DELET
Una de les accions més fàcils d'implementar és l'acció DELETE, que pren només el paràmetre idde la pizza que es traurà de la memòria cau en memòria:
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
// This code will delete the pizza and return a result
}
Cada instància ActionResultemprada a l'acció anterior s'assigna al codi d'estat HTTP corresponent a la taula següent.
| Resultat de l'acció d'ASP.NET Core |
Codi d'estat HTTP | Descripció |
|---|---|---|
NoContent |
204 | La pizza s'ha eliminat de la memòria cau en memòria. |
NotFound |
404 | No hi ha cap pizza que coincideixi amb el paràmetre idproporcionat a la memòria cau en memòria. |
A l'exercici de la unitat següent es mostra com admetre cadascuna d'aquestes quatre accions a l'API web.