2015-11-11 2 views
4

У нас есть стандартное веб-приложение, а front-end использует Angular, back-end написан на Java 7. Что я заметил, так это то, что мы получаем много дублирующего кода. То есть проверка выполняется на стороне клиента угловыми, но я не могу полностью доверять ему, так как пользователь может отключить проверку на стороне клиента и просто отправить почтовый запрос на сервер.Избегайте дублирования кода проверки на интерфейсе Javascript и Java-бэкэнд?

Поэтому я должен повторить ту же логику проверки на стороне сервера в Java. Это довольно утомительно, но я не знаю, как этого избежать. Возможно, я могу написать некоторые части фреймворков с помощью фреймворка javascript (предположим, что это Node.js), который может использовать ту же самую библиотеку проверки, что и front-end, и заставить Java back-end взаимодействовать с node.js? Каков наилучший подход для решения этой проблемы?

+0

Это означает, что у вас есть 2 backend? Когда-либо думал о таких вещах, как микросервисы? – CreasolDev

+0

Не уверен в этом. Может быть, Java может как-то использовать библиотеки javascript для выполнения проверки? Может быть, вы можете просто сгенерировать код для проверки JavaScript на основе кода проверки на завершающем этапе или наоборот? –

+2

Java не имеет ничего общего с Javascript. Выполняйте минимальные проверки на интерфейсе (базовая проверка типа/длины), а также проверите проверки базы данных и проверите дополнительные глубинные проверки в бэкэнд. – Andrius

ответ

3

Java может запускать код JavaScript и другие языки динамического сценария. В Java 7 JavaScript ScriptEngine называется Rhino, а в Java 8 называется Nashorn.

Руководство Oracle Java сценарист программиста для Java 7: https://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/

Может быть, вы можете написать чистый JavaScript в JS-файлов, которые вы можете поместить в бэкенд служить для клиента и выполнить на сервере тоже.

0

AngularBeans framework позволяет вам определить BeanValidation на java-стороне и преобразовывается в проверку угловой формы, чтобы код не дублировался. Посмотрите пример использования в статье this.

0

Определить правила проверки как данные в формате JSON, например, и выставить их через конечную точку в том же API, который предоставляет ваши данные. Теперь правила проверки являются общедоступными и могут использоваться любой другой службой для проверки данных с использованием некоторой библиотеки, которая может анализировать правила и принимать/отклонять представленные данные (т. Е. Из формы).

+0

У вас есть какой-то пример какой-либо рамки или правила для этого? – Kojotak

Смежные вопросы