⊗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

ახლა კი ფაილის ბოლოს, worker-ის ექსპორტის წინ შევქმნათ მასივი 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 ჩვენი worker-ისთვის, მოდით გადავცეთ ამ worker-ს მასივი handlers. ამისთვის შევასწოროთ ბოლო სტრიქონი კოდი ფაილში:

export const worker = setupWorker(...handlers)

გახსენით თქვენი აპლიკაცია სტუდენტებით, ხოლო მასში ფაილი server.js. დააიმპორტეთ ფაილში მითითებული ინსტრუმენტები msw-დან. ამ გაკვეთილის მასალის შესწავლის შემდეგ, შექმენით ცარიელი მასივი მოთხოვნების დასაჭერი დამმუშავებლებისთვის. დაწერეთ მასში კოდი სტუდენტების GET-მოთხოვნის დამმუშავებლისთვის. როგორც გზა მოგცემთ იყოს '/fakeServer/students'.

ფაილის ბოლოს არ დაგავიწყდეთ მასივი დამმუშავებლების handlers worker-ს გადაცემა.

ქართული
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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა