Del curso: .NET 8 esencial

Nuevas clases de Data Annotations - Tutorial de .NET

Del curso: .NET 8 esencial

Nuevas clases de Data Annotations

En la biblioteca de clases de .NET 8 podemos encontrar nuevas clases de data annotations para validación de datos. Vamos a ver cómo es esto aquí en este proyecto de tipo Web API que acabo de crear. Tengo PetsController y tengo un método que está mapeado al método Post de HTTP. Acá estoy solicitando en el body este objeto de tipo PetModel. Entonces, aquí lo que voy a hacer es lo siguiente. Voy a implementar una nueva propiedad llamada name para, justamente, el nombre de la mascota. Aquí estoy utilizando Required y StringLength, esas ya existían. La siguiente propiedad que voy a poner es Breed. Aquí vemos dos data annotations que, sí efectivamente son nuevas, y sumamente útiles. Estas son AllowedValues y DeniedValues, que, como su nombre en inglés indica, nos permite poner una lista de valores permitidos, esto es en AllowedValues, y una lista de valores que no están permitidos, en este caso, en DeniedValues. Como puedes observar en pantalla, aquí estoy permitiendo que en la raza de esta mascota podamos pasar beagle, pitbull y bóxer, pero no así, chihuahua. Entonces, al AllowedValues y DeniedValues vemos que son dos nuevas data annotations, y aquí hay una tercera nueva anotación, que es Based64String. Esto nos ayuda a validar que este string que estemos pasando esté verdaderamente en formato Base64. Esto es útil cuando, por ejemplo, estamos transmitiendo imágenes a través del protocolo HTTP. Bien, entonces, tengo estas tres propiedades en mi clase PetModel. Esto lo estoy recibiendo en el cuerpo del request de tipo post, y realmente no estoy haciendo nada más, simplemente estoy regresando OK con el objeto que estamos recibiendo. Muy bien, entonces vamos a iniciar aquí, en Visual Studio Code, la depuración. Simplemente voy a presionar F5 para iniciar con este proceso de depuración, y ahora lo que voy a hacer es abrir PostMan. Acá, entonces, tenemos PostMan, donde ya puse la dirección de este web API, también el endpoint, pets, y por acá en el Body estoy poniendo en JSON Name, Breed y Photo. Aquí el nombre, pues, es el nombre de la mascota, la raza y toda esta cadena en formato Base64 para la foto. Si mando este request, pues efectivamente va a ser válido, ya que me aseguré que todos estos datos así lo fueran. ¿Pero qué pasa si, por ejemplo, Yani es chihuahua. Chihuahua, vamos a mandar nuevamente este request. Vemos que aquí está mandando este error que indica que justamente no se está cumpliendo con los valores permitidos. Vamos a regresarlo, digamos Pitbull, esto lo debe aceptar, así sucede. Por acá voy a quitar este slash que está aquí, esto ya dejaría de ser una cadena de Base64 válida. Vamos a enviar el request y vemos que efectivamente me está diciendo que este campo llamado Photo no es una cadena Base64 válida. Vamos a regresarlo, nuevamente lo enviamos, y con esto podemos apreciar la utilidad de estas nuevas data annotations. Toma en cuenta que hay algunas otras más, pero estas tres que acabo de demostrar en este video son las más relevantes.

Contenido