Как отличить ответ Axios от ответа fetch?

У Axios данные находятся в response.data. Fetch возвращает Response: нужно проверить response.ok и вызвать await response.json(), если endpoint возвращает JSON.

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

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

У Axios данные находятся в response.data. Fetch возвращает Response: нужно проверить response.ok и вызвать await response.json(), если endpoint возвращает JSON.

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

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

Условие

В одном модуле используется const response = await axios.get('/api/users');, в другом — const response = await fetch('/api/users');. Разработчик пытается в обоих случаях читать response.data. Что нужно изменить?

Ответ

У Axios данные находятся в response.data. Fetch возвращает Response: нужно проверить response.ok и вызвать await response.json(), если endpoint возвращает JSON.

Не смешивайте две формы ответа в одной абстракции без нормализации. Axios при стандартной настройке отклоняет Promise для неуспешных HTTP-статусов, а fetch требует явной проверки статуса. Оба механизма могут завершиться ошибкой сети. Контракт собственного загрузчика лучше возвращает данные или согласованную ошибку, чтобы компоненты не зависели от конкретного HTTP-клиента.

Источник: axios-http.com, developer.mozilla.org.

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

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

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

Подробнее