Qualcuno è riuscito a utilizzare un sistema di regole comuni tra il frontend e il backend?
Simile a questa domanda: Gestione delle convalide lato client e lato server in un posto , sto cercando di trovare un modo per applicare regole aziendali coerenti sul fronte (JS) e sul back-end (Java). A differenza di questa domanda, però, non sono interessato a un sistema di convalida generale del campo multipiattaforma (non sono fuori per convalidare la lunghezza del campo).
Un esempio di regola aziendale può essere qualcosa del tipo:
If the user's age is under 18, then a parent's email is required.
In questo caso il nullable di un campo modulo cambia in base all'input da un'altra parte del modulo.
In modo che il sistema consenta:
{"user":"Bob","age":33} {"user":"Carol","age":15,"parent_email":"[email protected]"}
Ma nega:
{"user":"Alice","age":16}
Un motore di regole come Drools può creare e applicare regole aziendali sul back-end, ma solo in una JVM (o CLR).
La soluzione predefinita sembra avere due diversi set di regole che non resteranno mai sincronizzati e causeranno tutti i tipi di problemi di validazione e casi limite.
Mi piacerebbe sentire alcuni successi, fallimenti o tecniche migliori per affrontare questo problema.