⊗jsrxPmSDCl 44 of 57 menu

Redux иловаси учун клиент

Олдинги дарсларда биз иловамизнинг сервер томони ишини деярли якунладик, кейинги дарсларда зарур бўлганида уни янада тўлдириб борамиз. Энди бизга серверга HTTP-сўровлар юборадиган илова учун клиент яратиш лозим.

Махсулотлар билан ишлайдиган иловамизни ochamiz ва api papkasida client.js файлини яратамиз. Аввал биз client функциясини ёзамиз, у GET ва POST сўровлари учун ишлайди. Параметр сифатида у йўлни, сўров тури ва сўров танасини (POST учун), агар mavjud бўлса, олади:

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

Keyin биз turli xil сўров маълумотларини юборадиган options объектини shakllantirishimiz керак. У сўров тури ва сарлавҳаларни ўз ичига олади:

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

Keyin client даги кодда try блокини tashkil qilamiz, унинг биринчи сатрида fetch ёрдамида сервердан жавоб оламиз. Muvaffaqiyatsizlik ҳолатида анъанавий ravishda xato bilan промис қайтарамиз:

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

Энди try блокидаги коди ёзамиз. response ни олгандан сўнг, биз уни қайта ишлашимиз керак. Ундан JSON даги маълумотларни ajratib olamiz ва агар жавоб статуси ҳаммаси яхши эканлигини anglatadigan бўлса, биз маълумотлар ва маълумот bilan объектни қайтарамиз: статус, сарлавҳалар ва манзил. Агар статус 'ok' бўлмаса, статус мати билан istisno chiqaramiz:

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)

Шу билан ҳаммаси, кичик клиентимиз сервер билан ишлашга тайёр.

Студентлар билан ишлайдиган иловангизни oching, унинг api papkasida 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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш