⊗jsrxPmSDCl 44 of 57 menu

Клијент за апликацију у Redux-у

На претходним часовима смо практично завршили рад на серверском делу наше апликације, мало ћемо га допунити по потреби у следећим лекцијама. Сада нам је потребно да креирамо клијента за апликацију, који ће слати HTTP захтеве на сервер.

Отворимо нашу апликацију са производима и у фасцикли api креирајмо фајл client.js. За почетак ћемо написати саму функцију client, која ће радити и за GET и за POST захтеве. Параметрима ће добијати путању, тип и тело захтева (у случају POST), ако такав постоји:

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

Затим нам треба да формирамо објекат options, у коме ћемо преносити различите информације за захтев. То ће бити тип захтева и заглавља:

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

Својство body код нас је опционално, треба да га пренесемо, ако имамо POST захтев. За то унутар client након кода за објекат options додајмо га у options са телом захтева у формату JSON, ако је изабран метод POST:

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

Затим ниже у коду client организујмо блок try, у првој линији кога ћемо уз помоћ fetch добити одговор од сервера. У случају неуспеха традиционално ћемо вратити промис са грешком:

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

Сада ћемо дописати код у блоку try. Након добијања response, потребно нам је да га обрадимо. Извуцимо из њих податке у JSON и ако статус одговора сигнализира нам да је све у реду, онда вратимо објекат са подацима и информацијом: статусом, заглављима и адресом. Ако није статус 'ok', онда бацимо изузетак са текстом статуса:

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

Код за функцију client је спреман, остало је само да напишемо како ће радити наши методи GET и POST приликом позива. Хајде да напишемо код за њих после функције client. Метод client.get ће примати као параметар путању и позиваће функцију client, пренеси јој ову путању и тип захтева GET:

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

А client.post треба да преноси за client путању, тип захтева POST и тело захтева:

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

На томе је крај, наш мали клијент је спреман за рад са сервером.

Отворите вашу апликацију са студентима, креирајте у њој у фасцикли api фајл client.js. Упознавши се са материјалом лекције напишите (копирајте) код функције client и њена два метода client.get и client.post.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј