⊗jsrxPmSDGRS 43 of 57 menu

Odesílání dat ze serveru pomocí GET požadavku v Reduxu

Takže máme databázi s daty. První věc, kterou uděláme při spuštění naší Redux aplikace, je získání dat o produktech ze serveru. K tomu potřebujeme z naší aplikace odeslat GET požadavek. Pojďme jej zpracovat na straně serveru.

Otevřeme naši aplikaci s produkty, a v ní soubor server.js. Abychom mohli pracovat s HTTP požadavky, potřebujeme importovat do souboru několik nástrojů z msw, pojďme to udělat:

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

Také hned udělejme úpravy na realitu, tedy možné zpoždění v síti. Nechť hodnota našeho umělého zpoždění bude 2 sekundy, abychom viděli, jak se data načítají. Napišme jej za const PRODS_PER_SELLER = 2:

const ARTIFICIAL_DELAY_MS = 2000

A teď na konci souboru před exportem workera vytvoříme pole pro API handlery požadavků:

export const handlers = []

A poté v hranatých závorkách napíšeme první handler pro zachycení GET požadavku produktů:

export const handlers = [http.get()]

Jako první parametr pro http.get předáme nějakou falešnou adresu, například '/fakeServer/products', a jako druhý asynchronní callback:

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

Nyní napíšeme kód pro tento callback. S jeho pomocí extrahujeme všechny produkty z databáze. Zde také použijeme funkci serializeProduct, jejíž kód jsme napsali v minulé lekci. Pojďme ji předat do map. Poté provedeme zpoždění (jako by síť zpomalovala) a vrátíme v response objekty s daty produktů ve formátu 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 nakonec. Napsali jsme první handler pro našeho workera, pojďme předat tomuto workerovi pole handlers. K tomu upravíme poslední řádek kódu v souboru na:

export const worker = setupWorker(...handlers)

Otevřete vaši aplikaci se studenty, a v ní soubor server.js. Importujte do souboru uvedené nástroje z msw. Po prostudování materiálu této lekce vytvořte prázdné pole handlerů pro zachycování požadavků. Napište v něm kód pro handler GET požadavku studentů. Jako cestu mějte '/fakeServer/students'.

Na konci souboru nezapomeňte předat pole handlerů handlers workerovi.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout