Как синхронизировать модели JS фреймфорка с моделями сервера?

Сразу оговорюсь - вопрос общий и неважно, какой фреймфорк используется (ни на сервере, ни на клиенте).

Проблема по пунктам:
- На сервере есть некоторые модели (таблицы, схемы, структуры) данных.
- Сервер предоставляет клиенту некоторый API для доступа к данным
- Каждая конечная точка в API сервера имеет свой набор полей, свои ограничения на чтение, запись, изменение данных
- Клиент должен подстраиваться под модели данных сервера при каждом изменении моделей или схемы данных на сервере

Вопрос:
Как вы обеспечиваете идентичность моделей клиента (с описанием полей, валидацией и прочим) с конечными точками сервера?

Пример:
Есть некоторое веб-приложение.
Приложение может:
- отображать список пользователей
- создавать новых пользователей
У пользователя есть набор атрибутов, в числе которых есть номер телефона и email.
При заполнении формы создания пользователя клиентская часть приложения должна проверять номер телефона и email на валидность, После отправки валидных данных на сервер для создания нового пользователя, сервер может ответить положительно или вернуть ошибку типа "Не уникальный email" или "Не уникальный номер телефона". Это нормальные ответы от сервера, и клиент должен их соответствующим образом обработать.

Сервер обязан валидировать данные. клиент в идеале тоже. Получается, что необходимо дважды описать валидацию для каждого поля (на сервере и на клиенте)? Никого это не смущает?
  • Вопрос задан
  • 2896 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vitaliycto
я храню правила валидации в модели и при отображении отправляю эти правила на клиента в json или в data атрибуты поля (в зависимости от шаблонизатора)
ну и написать функцию которая будет обрабатывать эти правила не сложно)
если нужно проверять поля на уникальность, то делать валидацию поля через сервер
Ответ написан
Комментировать
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Получается что необходимо дважды описать валидацию для каждого поля (на сервере и на клиенте)? Никого это не смущает?

Да, это многих смущает. Поэтому появился node.js и фулл-стек фреймворки.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы