Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Algunos detalles mas sobre las validaciones en Spring

Si creeis que con lo explicado hasta el momento, habíamos dejado claro todas las posibilidades que encierra la validación en Spring… estais equivocados. Si, como temíais, hay muchas mas, y, aunque no vamos nunca a poder explicarlas todas, si que podemos dejar claro algunas cosas mas, y, espero que en este articulo queden claras …. o casi……

(En github, encontrareis una serie de modificaciones en cuanto a nombres de paquetes, sugeridas por Ramiro May, al que le agradezco su colaboracion.)

Validación de datos recibidos en PathVariable

Hasta ahora hemos visto como podemos filtrar los datos recibidor por el «body» de un controlador, a traves de la anotacion @Valid, pero eso dejaba sin verificar los casos en que nosotros recibiamos los datos como PathVariable… bien, veamos como puedo filtrar lo que me llega por ese camino. He utilizado el CRUD de cine para hacer el ejercicio; alli me encuentro con que en el @GetMapping(«/{id}»), necesito que el id que me indican exista en la BBDD, y, en la version original, me molesto en estar atento a dos Exception y genero una si no existe.

Veamos, realmente lo que podemos hacer utilizando la anotación @CheckCineValidation que creamos en Añadiendo un filtro de comprobación de existencia en tabla por anotaciones, en Spring

Deberemos anotar la clase como @Validated

y, a continuación, podemos añadir la anotacion de filtro, cuando pedimos el id. Incorporo el método entero, para ver la simplificación que representa

Cuando intenten acceder a un cine que no existe, se dispara una excepción ConstraintViolationException y en Postman, se vería asi:

Vale, no es demasiado bonito, pero, podemos modificar nuestro @ControllerAdvice añadiendo un nuevo método para que controle la excepción generada

y ya tenemos mejorado el mensaje de error

Solo nos queda añadir esa comprobacion, alli donde la necesitemos, por ejemplo en el DELETE

Y ya conseguimos que controle la entrada

Conclusión

Todo este desarrollo lo teneis explicado con mas detalle en youTube (a partir de10/02/24) , y, aunque es conveniente que intentéis escribirlo TODO vosotros, si queréis renunciar a ello, lo teneis tambien en GitHub

Este desarrollo esta hecho para disponer de un fuente para explicar otros temas, tal y como se indica en Visión de conjunto con Spring

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.15.143.181
Proxy: 3.15.143.181
Remote host: ec2-3-15-143-181.us-east-2.compute.amazonaws.com
Remote port: 38112
** 3.15.143.181, 172.70.178.41