Контракт динамической формы между клиентом и сервером

Backend отдаёт версионированную схему с устойчивыми ID полей и разрешёнными типами. Клиент отправляет значения по этим ID, а сервер независимо валидирует их и возвращает ошибки по полям.

Короткий ответ

Что ответить на собеседовании

Backend отдаёт версионированную схему с устойчивыми ID полей и разрешёнными типами. Клиент отправляет значения по этим ID, а сервер независимо валидирует их и возвращает ошибки по полям.

Подробный разбор

Ответ с пояснениями

Условие

Нужно отображать форму заявки, поля которой задаёт backend: текст, число, select и обязательность. Спроектируйте получение схемы, отправку значений и обработку ошибок.

Ответ

Backend отдаёт версионированную схему с устойчивыми ID полей и разрешёнными типами. Клиент отправляет значения по этим ID, а сервер независимо валидирует их и возвращает ошибки по полям.

Пример схемы: {version: 2, fields: [{id: 'city', type: 'text', required: true}]}; запрос: {schema_version: 2, values: {city: 'Омск'}}. Не передавайте исполняемый JavaScript или HTML для валидации. Условную видимость описывайте ограниченным набором правил. Устаревшую версию и неизвестные поля обрабатывайте явно; скрытое поле не должно обходить серверные права и проверки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее