У Axios данные находятся в response.data. Fetch возвращает Response: нужно проверить response.ok и вызвать await response.json(), если endpoint возвращает JSON.
Как отличить ответ Axios от ответа fetch?
У 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.