⊗jsrxPmSDCl 44 of 57 menu

Cliente para la aplicación en Redux

En las lecciones anteriores prácticamente completamos la parte del servidor para nuestra aplicación, la complementaremos un poco según sea necesario en las siguientes lecciones. Ahora necesitamos crear un cliente para la aplicación, que enviará solicitudes HTTP al servidor.

Abramos nuestra aplicación con productos y en la carpeta api creemos el archivo client.js. Para empezar, escribiremos la función client, que funcionará tanto para solicitudes GET como POST. Recibirá como parámetros la ruta, el tipo y el cuerpo de la solicitud (en caso de POST), si lo hay:

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

A continuación, necesitamos formar el objeto options, en el que pasaremos diversa información para la solicitud. Este será el tipo de solicitud y los encabezados:

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

La propiedad body es opcional para nosotros, debemos pasarla si tenemos una solicitud POST. Para ello, dentro de client, después del código para el objeto options, lo añadiremos a options con el cuerpo de la solicitud en formato JSON, si se selecciona el método POST:

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

Luego, más abajo en el código de client, organizaremos un bloque try, en cuya primera línea usaremos fetch para obtener la respuesta del servidor. En caso de fallo, tradicionalmente devolveremos una promesa con un error:

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

Ahora completemos el código en el bloque try. Después de obtener response, necesitamos procesarlo. Extraeremos los datos en JSON y si el estado de la respuesta nos indica que todo está bien, entonces devolveremos un objeto con los datos e información: estado, encabezados y dirección. Si el estado no es 'ok', entonces lanzaremos una excepción con el texto del estado:

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

El código para la función client está listo, solo queda escribir cómo funcionarán nuestros métodos GET y POST cuando se llamen. Escribamos el código para ellos después de la función client. El método client.get recibirá como parámetro la ruta y llamará a la función client, pasándole esta ruta y el tipo de solicitud GET:

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

Y client.post debe pasar para client la ruta, el tipo de solicitud POST y el cuerpo de la solicitud:

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

Eso es todo, nuestro pequeño cliente está listo para trabajar con el servidor.

Abra su aplicación con estudiantes, creé en ella en la carpeta api el archivo client.js. Después de revisar los materiales de la lección, escriba (copie) el código de la función client y sus dos métodos client.get y client.post.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar