⊗jsrxPmSDCl 44 of 57 menu

Odjemalec za aplikacijo v Redux

V prejšnjih lekcijah smo praktično zaključili delo s strežniškim delom za našo aplikacijo, malo ga bomo dopolnili po potrebi v naslednjih lekcijah. Zdaj moramo ustvariti odjemalca za aplikacijo, ki bo pošiljal HTTP zahteve na strežnik.

Odprimo našo aplikacijo s produkti in v mapi api ustvarimo datoteko client.js. Za začetek bomo napisali samo funkcijo client, ki bo delovala tako za GET kot za POST zahteve. Kot parametre bo sprejela pot, tip in telo zahteve (v primeru POST), če obstaja:

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

Nato moramo oblikovati objekt options, v katerem bomo posredovali različne informacije za zahtevo. To je tip zahteve in glave:

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

Lastnost body je pri nas opcijska, moramo jo posredovati, če imamo POST zahtevo. Za to dodajmo znotraj client po kodi za objekt options v options s telesom zahteve v formatu JSON, če je izbrana metoda POST:

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

Nato nato v kodi client organizirajmo blok try, v prvi vrstici katerega bomo s pomočjo fetch dobili odgovor od strežnika. V primeru neuspeha bomo tradicionalno vrnili promis z napako:

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

Zdaj dopišimo kodo v bloku try. Po prejemu response, ga moramo obdelati. Izvlečimo iz njega podatke v JSON in če status odgovora nam signalizira, da je vse v redu, potem vrnimo objekt s podatki in informacijami: statusom, glavami in naslovom. Če pa status ni 'ok', potem vržimo izjemo s besedilom statusa:

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) }

Koda za funkcijo client je pripravljena, preostane samo še napisati, kako bodo delale naše metode GET in POST pri klicu. Napišimo kodo zanje po funkciji client. Metoda client.get bo sprejela kot parameter pot in klicala funkcijo client, ki ji posreduje to pot in tip zahteve GET:

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

client.post pa mora posredovati za client pot, tip zahteve POST in telo zahteve:

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

To je vse, naš majhen odjemalec je pripravljen za delo s strežnikom.

Odprite vašo aplikacijo s študenti, ustvarite v njej v mapi api datoteko client.js. Po seznanitvi z gradivom lekcije napišite (kopirajte) kodo funkcije client in njenih dveh metod client.get in client.post.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni