Saltar al contenido

Puntos finales funcionales de Spring 5 Webflux: ¿cómo realizar la validación de entrada?

Solución:

En la versión 5.0 de Spring, no hay una forma automática de realizar la validación en los puntos finales funcionales y, como tal, la validación debe realizarse manualmente.

Aunque actualmente no hay planes concretos para hacerlo, podríamos agregar algún tipo de validación en el futuro. Pero incluso entonces será una llamada a un método explícito y no un mecanismo automático. En general, el modelo de punto final funcional está diseñado para ser mucho más explícito que el modelo basado en anotaciones.

Como arjen-poutsma dicho, parece que no hay forma de ejecutar validaciones automatizadas en los puntos finales funcionales de Spring 5.

La documentación de Spring no es muy clara al respecto y no sugiere ningún enfoque.

En este artículo de Baeldung, encontrará una idea sobre cómo puede ejecutar validaciones utilizando este enfoque (descargo de responsabilidad: soy el autor del artículo :))

En pocas palabras, puede seguir estos pasos:

  1. Implemente Spring Validators para evaluar sus recursos
  2. Cree una clase abstracta con el procedimiento básico que seguirá cualquier manejador al procesar una solicitud, dejando a las clases secundarias qué hacer cuando los datos son válidos
  3. Haga que sus clases de manejo de solicitudes extiendan esta clase abstracta, implementando este método abstracto, indicando el cuerpo que estará esperando y qué validador debe usarse para validarlo

EDITAR:

He estado siguiendo este problema relacionado con Spring, y parece que ahora contamos con documentación oficial sobre este tema: https://github.com/spring-projects/spring-framework/blob/master/src/docs/asciidoc/web /webflux-functional.adoc#validation

El enfoque sugerido es utilizar validadores como se explica en el artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *