⊗jsrxPmSDGRS 43 of 57 menu

Деректерді серверден 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 массивін воркерге беруді ұмытпаңыз.

Қазақ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართული한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау