⊗jsrxPmSDCl 44 of 57 menu

Klient for applikasjon i Redux

I de foregående timene har vi nesten fullført arbeidet med serverdelen for applikasjonen vår, vi vil supplere den litt etter behov i de følgende leksjonene. Nå må vi opprette en klient for applikasjonen som vil sende HTTP-forespørsler til serveren.

La oss åpne applikasjonen vår med produkter og i mappen api opprette filen client.js. Til å begynne med skal vi skrive selve funksjonen client, som vil fungere for både GET- og POST-forespørsler. Den vil ta som parametere stien, typen og forespørselskroppen (i tilfelle POST), hvis noen slik finnes:

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

Deretter må vi opprette et objekt options, der vi vil sende forskjellig informasjon for forespørselen. Dette vil være forespørselstype og headere:

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

Egenskapen body er valgfri for oss, vi bør sende den hvis vi har en POST-forespørsel. For å gjøre dette, inni client, etter koden for objektet options, legger vi den til i options med forespørselskroppen i JSON-format, hvis POST-metoden er valgt:

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

Deretter, lenger ned i koden til client, organiserer vi et try-blokk, i hvis første linje vi ved hjelp av fetch vil motta et svar fra serveren. I tilfelle feil, vil vi tradisjonelt returnere et promise med en feil:

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

La oss nå fullføre koden i try-blokken. Etter å ha mottatt response, må vi behandle den. La oss hente ut dataene fra den i JSON-format, og hvis statuskoden for svaret indikerer at alt er i orden, så returnerer vi et objekt med data og informasjon: status, headere og adresse. Hvis statusen derimot ikke er 'ok', kaster vi et unntak 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 for funksjonen client er klar, det gjenstår bare å skrive hvordan våre GET- og POST-metoder vil fungere ved kall. La oss skrive koden for dem etter funksjonen client. Metoden client.get vil ta som parameter en sti og kalle funksjonen client, og sende den denne stien og forespørselstypen GET:

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

Og client.post skal sende til client stien, forespørselstypen POST og forespørselskroppen:

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

Det var alt, vår lille klient er klar til å jobbe med serveren.

Åpne applikasjonen deres med studenter, opprett i den, i mappen api, filen client.js. Etter å ha sett på materialet fra leksjonen, skriv (eller kopier) koden for funksjonen client og dens to metoder client.get og client.post.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis