Me siento un poco en conflicto en este momento. Tengo una aplicación web que utiliza Stripes para un framework MVC y Spring/Hibernate para el back-end. Tengo un método de registro de la cuenta en mi capa MVC que requiere la siguiente validación:¿Debo duplicar la validación en mi capa MVC y capa de servicio?
- nombre de usuario no está ya tomada
- La dirección de correo electrónico proporcionada no está asociada con otra cuenta
tengo una método de validación en Stripes (capa MVC) que verifica estos dos casos pero se preguntaba si mi capa de servicio debería duplicar estos controles. Si la interfaz de capa de servicio se expuso como un servicio web, entonces creo que la validación sería una buena idea, pero si se usa solo en el contexto de una aplicación web, ¿es necesario?
Editar: No tengo la intención de duplicar el código de validación, es decir, duplicar las llamadas al método de validación en dos lugares.
veo mis opciones como:
- Duplicar las llamadas de validación, tanto en MVC y capa de servicio
- Sólo debe realizar esta validación en la capa MVC
- Sólo debe realizar esta validación en la capa de servicio.
¿Qué es mejor práctica aquí? Estoy buscando consejos/opiniones sobre la opción que debo elegir y por qué.
Tenga en cuenta que hay comprobaciones de validación simples en los campos de entrada del formulario de registro (como la comprobación de espacios en blanco) y que creo que estos deben ser manejados por la validación de MVC solamente; Solo me preocupan las validaciones más complejas.
Sí, no quiero decir que voy a duplicar el código de validación. Quiero decir que llamaré al mismo código de validación en dos lugares. – JMM
Como mencionaste, entonces realmente tienes que hacer la validación dos veces, en Si tiene otros clientes además de la capa de controlador. Potencialmente, podría ver potencialmente querer tener una lógica de validación diferente también –