⊗jsrxPmSDGRS 43 of 57 menu

Wysyłanie danych z serwera za pomocą żądania GET w Redux

A więc mamy bazę danych. Pierwszą rzeczą, którą zrobimy przy uruchomieniu naszej aplikacji Redux - jest pobranie danych o produktach z serwera. W tym celu musimy z naszej aplikacji wysłać żądanie GET. Zajmijmy się jego obsługą po stronie serwera.

Otwórzmy naszą aplikację z produktami, a w niej plik server.js. Aby móc pracować z żądaniami HTTP, musimy zaimportować do pliku kilka narzędzi z msw, zróbmy to:

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

Również od razu uwzględnijmy realia, czyli możliwe opóźnienia w sieci. Niech wartość naszego sztucznego opóźnienia wynosi 2 sekundy, abyśmy widzieli jak ładują się dane. Napiszmy je po const PRODS_PER_SELLER = 2:

const ARTIFICIAL_DELAY_MS = 2000

A teraz na końcu pliku przed eksportem workera utwórzmy tablicę dla handlerów żądań API:

export const handlers = []

I następnie w nawiasach kwadratowych napiszmy pierwszy handler do przechwytywania żądania GET produktów:

export const handlers = [http.get()]

Pierwszym parametrem dla http.get przekażemy jakieś fałszywe adres, na przykład '/fakeServer/products', a drugim asynchroniczny callback:

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

Teraz napiszmy kod dla tego callback. Z jego pomocą wyodrębnimy wszystkie produkty z bazy danych. Tutaj również wykorzystamy funkcję serializeProduct, której kod napisaliśmy na poprzednich zajęciach. Przekażmy ją do map. Następnie zróbmy opóźnienie (jakby sieć zwalniała) i zwróćmy w response obiekty z danymi produktów w formacie 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) }), ]

I ostatnie. Napisaliśmy pierwszy handler dla naszego workera, przekażmy temu workerowi tablicę handlers. W tym celu poprawmy ostatnią linię kodu w pliku na:

export const worker = setupWorker(...handlers)

Otwórz swoją aplikację ze studentami, a w niej plik server.js. Zaimportuj do pliku wskazane narzędzia z msw. Po zapoznaniu się z materiałem tej lekcji, utwórz pustą tablicę handlerów do przechwytywania żądań. Napisz w niej kod dla handlera żądania GET studentów. Jako ścieżkę niech będzie '/fakeServer/students'.

Na końcu pliku nie zapomnij przekazać tablicy handlerów handlers workerowi.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć