Mi sento un po 'in conflitto al momento. Ho un'applicazione web che utilizza Stripes per un framework MVC e Spring/Hibernate per il back-end. Ho un metodo di registrazione dell'account nel mio strato di MVC che richiede la previa convalida:Devo duplicare la convalida nel mio livello MVC e nel livello di servizio?
- nome utente non è già preso
- L'indirizzo email fornito non è già associato a un altro account
Ho un metodo di validazione in Stripes (strato MVC) che controlla questi due casi ma si chiedeva se il mio livello di servizio dovesse duplicare questi controlli? Se l'interfaccia del livello di servizio è stata esposta come servizio Web, penso che la convalida sarebbe una buona idea, ma se è utilizzata solo nel contesto di un'applicazione web è necessaria?
Modifica: non intendo duplicare il codice di convalida, ovvero la duplicazione delle chiamate del metodo di convalida in due punti.
vedo le mie opzioni come:
- Duplicare le chiamate di validazione sia MVC e livello di servizio
- eseguire questa convalida solo nello strato di MVC
- eseguire Solo questa convalida del livello di servizio.
Qual è la migliore pratica qui? Sto cercando consigli/opinioni su quale opzione dovrei andare e perché.
Si noti che esistono semplici controlli di convalida nei campi di input del modulo di registrazione (come il controllo degli spazi vuoti) e che penso che questi debbano essere gestiti solo dalla convalida MVC; Sono solo preoccupato per convalide più complesse.
Sì, non intendo che sto duplicando il codice di convalida - Voglio dire, chiamerò lo stesso codice di convalida in due punti – JMM
Bene come hai detto allora hai davvero bisogno di fare la convalida due volte, in caso hai altri client oltre al livello controller. Potenzialmente potrei vedere potenzialmente voler avere anche una logica di validazione diversa –