> Как понимать ошибку в ответе с параметром direction в JSON (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Radium Finance
Стек: JavaScript
> Пример ответа
Короткий ответ
Ошибка с параметром direction в JSON обычно возникает, когда сервер ожидает определённое значение (например, "asc" или "desc"), а клиент передаёт невалидное или отсутствующее поле. Это может быть связано с опечаткой в названии ключа, неверным регистром, типом данных (строка вместо числа) или несоответствием схеме API. Проверьте контракт запроса и корректность сериализации.
Подробное объяснение
Проблема с direction в JSON часто проявляется в контексте сортировки данных на серверной стороне. Ошибка может быть:
- Синтаксической: JSON невалиден (лишняя запятая, неэкранированные кавычки).
- Структурной: ключ называется
"dir"вместо"direction", или значение передано какtrue/falseвместо строки. - Типизационной: сервер ожидает
"asc"или"desc", а приходит"ASC"или1. - Логической: поле отсутствует, хотя сервер требует обязательного параметра.
Причина часто кроется в несоответствии между документацией API и реализацией клиента. Например, фронтенд использует fetch с неправильным Content-Type или забывает преобразовать объект через JSON.stringify. Сервер, в свою очередь, может возвращать 400 Bad Request с сообщением вроде "Invalid direction parameter".
На практике
При отладке:
- Откройте вкладку Network в DevTools и проверьте тело запроса.
- Убедитесь, что
Content-Type: application/jsonи данные корректно сериализованы. - Сравните структуру JSON с ожидаемой схемой (часто описана в Swagger/OpenAPI).
- Проверьте, не приводит ли библиотека для HTTP-запросов (axios, fetch) к автоматической трансформации данных.
Если ошибка воспроизводится только в определённых сценариях, возможно, проблема в кодировке или экранировании символов при передаче через URL (если параметр идёт в query string, а не в теле).
Пример кода
JAVASCRIPT// Неправильно: передача числа вместо строкиfetch('/api/data', {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({ direction: 1 }) // сервер ждёт "asc" или "desc"});// Правильно: строка в нижнем регистреfetch('/api/data', {method: 'POST',headers: { 'Content-Type': 'application/json' },body: JSON.stringify({ direction: 'asc' })});// Проверка перед отправкойconst validateDirection = (dir) => {const valid = ['asc', 'desc'];if (!valid.includes(dir)) {throw new Error(`Invalid direction: ${dir}`);}return dir;};
Как отвечать на собеседовании
Начните с конкретного сценария: "Ошибка обычно связана с несоответствием типов или структуры данных". Затем перечислите три основные причины: синтаксис JSON, неверное значение, отсутствие поля. Подчеркните важность проверки через DevTools и контракта API. Если спросят про обработку, упомяните валидацию на клиенте и fallback-значения. Для senior-уровня добавьте про idempotency и graceful degradation.
Что проверяет интервьюер
- Понимание основ JSON и HTTP-протокола.
- Умение диагностировать проблемы на стыке фронтенда и бэкенда.
- Опыт работы с REST API и обработкой ошибок.
- Способность структурировать ответ: от симптома к причине и решению.
Типичные ошибки
- Путать
directionсorderилиsort(разные названия в разных API). - Использовать булевы значения (
true/false) вместо строк. - Забывать, что JSON чувствителен к регистру ключей.
- Не проверять, что сервер ожидает параметр в теле POST, а не в query string.
> Похожие задачи по frontend
Какой опыт есть с разработкой адаптивной верстки
В каком формате писать ответ (XML, JSON, YAML)
Как передаются массивы в JSON
Какие особенности у JSON
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью