⊗jsrxPmSDGRS 43 of 57 menu

Odosielanie údajov zo servera pomocou GET požiadavky v Reduxe

Takže máme databázu s údajmi. Prvá vec, ktorú urobíme pri spustení našej Redux aplikácie - je získanie údajov o produktoch zo servera. Na to potrebujeme z našej aplikácie odoslať GET požiadavku. Poďme ju spracovať na strane servera.

Otvorme našu aplikáciu s produktmi, a v nej súbor server.js. Aby sme mohli pracovať s HTTP požiadavkami, potrebujeme importovať do súboru niekoľko nástrojov z msw, poďme to urobiť:

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

Tiež hneď urobme úpravy na realitu, to znamená možné oneskorenia v sieti. Nech hodnota nášho umelého oneskorenia bude predstavovať 2 sekundy, aby sme videli ako sa načítavajú údaje. Napíšme ho po const PRODS_PER_SELLER = 2:

const ARTIFICIAL_DELAY_MS = 2000

A teraz na konci súboru pred exportom workera vytvorme pole pre API handlerov požiadaviek:

export const handlers = []

A potom v hranatých zátvorkách napíšme prvý handler na zachytenie GET požiadavky produktov:

export const handlers = [http.get()]

Prvým parametrom pre http.get predáme nejakú falošnú adresu, napríklad '/fakeServer/products', a druhým asynchrónny callback:

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

Teraz napíšme kód pre tento callback. S pomocou neho extrahujeme všetky produkty z databázy. Tu tiež použijeme funkciu serializeProduct, ktorej kód sme napísali na minulej hodine. Poďme ju odovzdať do map. Potom urobme oneskorenie (ako keby sieť pomalšie fungovala) a vráťme v response objekty s údajmi produktov vo forme 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) }), ]

A posledné. Napísali sme prvý handler pre nášho workera, poďme odovzdať tomuto workerovi pole handlers. Na to opravme posledný riadok kódu v súbore na:

export const worker = setupWorker(...handlers)

Otvorte vašu aplikáciu so študentmi, a v nej súbor server.js. Importujte do súboru uvedené nástroje z msw. Po preštudovaní materiálu tejto lekcie vytvorte prázdne pole handlerov pre zachytávanie požiadaviek. Napíšte v ňom kód pre handler GET požiadavky študentov. Ako cestu nech máte '/fakeServer/students'.

Na konci súboru nezabudnite odovzdať pole handlerov handlers workerovi.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť