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 для валидации. Условную видимость описывайте ограниченным набором правил. Устаревшую версию и неизвестные поля обрабатывайте явно; скрытое поле не должно обходить серверные права и проверки.