⊗jsrxPmSDCl 44 of 57 menu

Klient til applikation i Redux

I de foregående lektioner afsluttede vi næsten arbejdet med serverdelen til vores applikation, vi vil tilføje lidt mere efter behov i de følgende lektioner. Nu er vi nødt til at skabe en klient til applikationen, som vil sende HTTP-anmodninger til serveren.

Lad os åbne vores applikation med produkter og i mappen api oprette filen client.js. Til at starte med vil vi skrive selve funktionen client, som vil arbejde for både GET og POST anmodninger. Den vil modtage stien, typen og anmodningens krop (i tilfælde af POST) som parametre, hvis der er nogen:

export async function client(url, method, body = {}) {}

Dernæst skal vi danne et objekt options, hvor vi vil overføre forskellig information til anmodningen. Dette vil være anmodningstypen og headere:

export async function client(url, method, body = {}) { const options = { method: method, headers: { 'Content-Type': 'application/json', }, } }

Egenskaben body er valgfri for os, vi bør overføre den, hvis vi har en POST-anmodning. For at gøre dette, tilføjer vi den i options med anmodningens krop i JSON-format efter koden for objektet options inde i client, hvis POST-metoden er valgt:

if (method === 'POST') { options.body = JSON.stringify(body) }

Dernæst organiserer vi en try-blok i client-koden nedenfor, hvor vi i den første linje ved hjælp af fetch vil modtage et svar fra serveren. I tilfælde af fiasko vil vi traditionelt returnere et promise med en fejl:

let data try { const response = await window.fetch(url, options) } catch (err) { return Promise.reject(err.message ? err.message : data) }

Lad os nu skrive koden færdig i try-blokken. Efter at have modtaget response, skal vi behandle den. Lad os udtrække dataene fra den i JSON, og hvis svarets status signalerer til os, at alt er i orden, så returnerer vi et objekt med data og information: status, headere og adresse. Hvis statusen derimod ikke er 'ok', så kaster vi en undtagelse med statusteksten:

try { const response = await window.fetch(url, options) data = await response.json() if (response.ok) { return { status: response.status, headers: response.headers, url: response.url, data, } } throw new Error(response.statusText) }

Koden til funktionen client er færdig, det eneste der mangler er at skrive, hvordan vores GET- og POST-metoder vil fungere, når de kaldes. Lad os skrive koden til dem efter funktionen client. Metoden client.get vil modtage stien som parameter og kalde funktionen client, hvori den overfører denne sti og anmodningstypen GET:

client.get = (url) => client(url, 'GET')

Og client.post skal overføre client stien, anmodningstypen POST og anmodningens krop:

client.post = (url, body) => client(url, 'POST', body)

Det var alt, vores lille klient er klar til at arbejde med serveren.

Åbn din applikation med studerende, opret filen client.js i mappen api i den. Efter at have gennemgået lektionens materiale, skal du skrive (kopiere) koden til funktionen client og dens to metoder client.get og client.post.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis