@Ezrayter

Что такое React Mock API? И как его использовать?

Доброго времени суток!

Есть react-приложение с axios запросами на сервер. Иногда случается так, что сервер перестает работать. Мне сказали за'mock'ать api методы на клиенте, дабы иметь возможность работать и без сервера.

Что это значит? Правильно ли я понимаю, что можно добавить код, который будет перехватывать api запросы и возвращать те данные, которые я укажу? Как я понимаю, это используется для тестирования (в интернете по запросу "react mock api" выдаются статьи по тестированию). А можно ли применить это не для тестирования, а для работы без активного сервера?

Буду благодарен за объяснения и ссылки на ресурсы, где можно почитать обо всем этом.
  • Вопрос задан
  • 5497 просмотров
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
Что такое React Mock API?

такого апи нет. Реакту вообще все равно ходите вы на сервер или берете данные еще откуда-то

Можно замокать запросы и в приложении для работы без сервера, раз у вас axios, то смотрите как это лучше сделать для него.

вот первое что попалось: https://github.com/ctimmerm/axios-mock-adapter
Ответ написан
Комментировать
@dimoff66
Кратко о себе: Я есть
Запрос к серверному api это асинхронные функции, которые посылают запрос и ждут ответа, соответственно вы можете подменить их на свои, например у вас есть объект с функциями серверного запроса

const serverAPI = {
  getCategories: () => fetch('/categories'),
  getCategory: (id) => fetch('/categories/' + id)
}


И есть моковые запросы с теми же самыми ключами, что и serverAPI

// Создадим базу данных
const mockDB = {
  categories: [
    { id: 1, name: 'products'}, 
    { id: 2, name: 'services'}
  ]
}

const mockAPI = {
  getCategories: () => Promise.resolve(mockDB.categories),
  getCategory:  (id) => Promise.resolve(mockDB.categories.find(v => v.id === id)),
}


И создайте объект
const currentAPI = serverAPI

все запросы из кода делайте к currentAPI, переключать его с мокового на нормальный и наоборот можно
Object.assign(currentAPI, mockAPI)
Object.assign(currentAPI, serverAPI)


Сохранять данные мокового DB можно в localStorage между сеансами. естественно это будет работать только локально
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 00:29
2000 руб./за проект
01 мая 2024, в 00:20
15000 руб./за проект
30 апр. 2024, в 23:39
3000 руб./за проект