⊗jsrxPmSDCl 44 of 57 menu

Klient för applikation i Redux

I tidigare lektioner har vi nästan avslutat arbetet med serverdelen för vår applikation, vi kommer att komplettera den lite vid behov i kommande lektioner. Nu behöver vi skapa en klient för applikationen som kommer att skicka HTTP-förfrågningar till servern.

Låt oss öppna vår applikation med produkter och i mappen api skapa filen client.js. Till att börja med kommer vi att skriva själva funktionen client, som kommer att fungera för både GET och POST-förfrågningar. Den kommer att ta som parametrar sökväg, typ och förfrågans body (i fallet med POST), om sådan finns:

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

Därefter behöver vi skapa objektet options, där vi kommer att skicka olika information för förfrågan. Detta kommer att vara förfrågningstyp och headers:

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

Egenskapen body är valfri för oss, vi bör skicka den om vi har en POST-förfrågan. För att göra detta, lägg till den i options med förfrågans body i JSON-format efter koden för objektet options inuti client, om POST-metoden är vald:

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

Sedan, längre ner i koden för client, skapar vi ett try-block, där vi på första raden med hjälp av fetch får ett svar från servern. Vid misslyckande returnerar vi traditionellt ett promise med ett fel:

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

Låt oss nu skriva klart koden i try-blocket. Efter att ha fått response behöver vi behandla den. Låt oss extrahera data från den i JSON-format och om statuskoden för svaret signalerar att allt är i ordning, så returnerar vi ett objekt med data och information: status, headers och adress. Om statusen däremot inte är 'ok', så kastar vi ett undantag med status-texten:

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 för funktionen client är klar, det återstår bara att skriva hur våra GET- och POST-metoder kommer att fungera när de anropas. Låt oss skriva koden för dem efter funktionen client. Metoden client.get kommer att ta som parameter en sökväg och anropa funktionen client, skicka den denna sökväg och förfrågningstypen GET:

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

Och client.post bör skicka till client sökväg, förfrågningstyp POST och förfrågans body:

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

Det var allt, vår lilla klient är redo att arbeta med servern.

Öppna din applikation med studenter, skapa i den i mappen api filen client.js. Efter att ha tagit del av materialet i lektionen, skriv (kopiera) koden för funktionen client och dess två metoder client.get och client.post.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa