# Отправка данных с сервера по GET-запросу в Redux

Итак у нас есть база с данными. Первое, что мы будем делать при запуске нашего Redux приложения - это получать с сервера данные с продуктами. Для этого нам нужно из нашего приложения отправить GET-запрос. Давайте обработаем его на стороне сервера.

Откроем наше приложение с продуктами, а в нем файл `server.js`. Для того, чтобы работать с HTTP-запросами, нам нужно импортировать в файл несколько инструментов из msw, давайте сделаем это:

`import { http, HttpResponse, delay } from 'msw'`

Также сразу сделаем поправки на реальность, то есть возможные задержки в сети. Пусть значение нашей искусственной задержки будет составлять `2` секунды, чтобы мы видели как подгружаются данные. Напишем ее после `const PRODS_PER_SELLER = 2`:

`const ARTIFICIAL_DELAY_MS = 2000`

А теперь в конце файла перед экспортом воркера заведем массив для API обработчиков запросов:

`export const handlers = []`

И затем в квадратных скобочках напишем первый обработчик для перехвата GET-запроса продуктов:

`export const handlers = [http.get()]`

Первым параметром для `http.get` мы передадим какой-то фейковый адрес, например `'/fakeServer/products'`, а вторым асинхронный callback:

`export const handlers = [http.get('/fakeServer/products', async () => {})]`

Теперь напишем код для этого callback. С помощью него мы извлечем все продукты из БД. Здесь мы также используем функцию `serializeProduct`, код которой мы написали на прошлом занятии. Давайте передадим ее в `map`. Затем сделаем задержку (как будто сеть тормозит) и вернем в `response` объекты с данными продуктов в виде json:

`export const handlers = [ http.get('/fakeServer/products', async () => { const products = db.product.getAll().map(serializeProduct) await delay(ARTIFICIAL_DELAY_MS) return HttpResponse.json(products) }), ]`

И последний штрих. Мы написали первый handler для нашего воркера, давайте передадим этому воркеру массив `handlers`. Для этого исправим последнюю строчку кода в файле на:

`export const worker = setupWorker(...handlers)`

Откройте ваше приложение со студентами, а в нем файл `server.js`. Импортируйте в файл указанные инструменты из msw. Изучив материал данного урока, создайте пустой массив обработчиков для перехватов запросов. Напишите в нем код для обработчика GET-запроса студентов. В качестве пути пусть у вас будет `'/fakeServer/students'`.

В конце файла не забудьте передать массив обработчиков `handlers` воркеру.

← →
↑