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:

C#
[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:

C#
[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:

C#
[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.


Mòdul completat:

Següent