Domina fetch en JavaScript para hacer solicitudes web

| Última modificación: 3 de junio de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si alguna vez te has preguntado cómo hacer solicitudes HTTP en JavaScript de manera sencilla y eficiente, estás en el lugar correcto. En este artículo, vamos a explorar cómo utilizar fetch en JavaScript para hacer solicitudes web. Aprenderás los conceptos básicos, verás ejemplos prácticos y descubrirás por qué fetch es una herramienta tan poderosa para desarrolladores web.

¿Qué es fetch en JavaScript?

La API fetch en Javascript proporciona una interfaz para acceder y manipular partes del canal HTTP, tales como peticiones y respuestas. Además, fetch ofrece un método global que facilita la obtención de recursos de forma asíncrona a través de la red.

Ventajas de utilizar fetch en Javascript

Antes de entrar en los detalles técnicos, es importante entender por qué deberías usar fetch en Javascript, en lugar de otras alternativas como XMLHttpRequest:

  1. Simplicidad: fetch proporciona una manera más clara y lógica de hacer solicitudes asíncronas.
  2. Promesas: Utiliza promesas, lo que simplifica el manejo de respuestas y errores.
  3. Compatibilidad: Integración fácil con tecnologías modernas como Service Workers.
  4. CORS: Mejor manejo de políticas de intercambio de recursos de origen cruzado.

Cómo hacer una solicitud básica con fetch

Una solicitud básica con fetch es muy sencilla. Aquí tienes un ejemplo de cómo hacer una solicitud GET para obtener un archivo JSON:

fetch('http://example.com/movies.json')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.log('Error:', error));

En este ejemplo, fetch toma la URL del recurso que queremos obtener y devuelve una promesa que contiene la respuesta. Luego, convertimos la respuesta en JSON y la imprimimos en la consola.

Haciendo solicitudes POST

Además de las solicitudes GET, fetch también facilita la realización de solicitudes POST. Aquí tienes un ejemplo de cómo enviar datos JSON a un servidor:

async function postData(url = '', data = {}) {
  const response = await fetch(url, {
    method: 'POST',
    mode: 'cors',
    cache: 'no-cache',
    credentials: 'same-origin',
    headers: {
      'Content-Type': 'application/json'
    },
    redirect: 'follow',
    referrerPolicy: 'no-referrer',
    body: JSON.stringify(data)
  });
  return response.json();
}

postData('https://example.com/answer', { answer: 42 })
  .then(data => console.log(data))
  .catch(error => console.log('Error:', error));

Este ejemplo muestra cómo enviar datos JSON a un servidor utilizando fetch. La función postData toma una URL y un objeto de datos, y configura las opciones necesarias para la solicitud POST.

Manejo de errores

Un aspecto importante de trabajar con fetch en JavaScript es el manejo de errores. La promesa devuelta por fetch solo se rechaza en caso de un fallo de red. Para manejar errores HTTP, debemos verificar el estado de la respuesta.

fetch('https://example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json();
  })
  .then(data => console.log(data))
  .catch(error => console.error('There has been a problem with your fetch operation:', error));

En este código, verificamos si la propiedad ok de la respuesta es true antes de procesar los datos. Si no lo es, lanzamos un error que se maneja en el bloque catch.

Configuración avanzada

El método fetch también permite una configuración avanzada mediante un objeto de opciones. Aquí tienes un ejemplo:

var myHeaders = new Headers();
myHeaders.append('Content-Type', 'application/json');

var myInit = {
  method: 'GET',
  headers: myHeaders,
  mode: 'cors',
  cache: 'default'
};

var myRequest = new Request('https://example.com/api', myInit);

fetch(myRequest)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.log('Error:', error));

En este ejemplo, creamos un objeto Request personalizado con varias opciones, incluyendo los encabezados y el modo de la solicitud.

Usar fetch en JavaScript para hacer solicitudes web es una habilidad esencial para cualquier desarrollador web. Su simplicidad, flexibilidad y compatibilidad con tecnologías modernas lo hacen una herramienta invaluable. Ya sea que estés recuperando datos de un servidor, enviando información o manejando errores, fetch te proporciona todas las herramientas necesarias.

Si deseas dominar fetch en JavaScript y otras tecnologías web, ¡apúntate al Bootcamp en Desarrollo Web! En KeepCoding, te ofrecemos una formación intensiva y práctica que te preparará para una carrera exitosa en el sector IT. Nuestros bootcamps no solo te enseñan a programar, sino que también te ayudan a transformar tu vida profesional. Con una alta demanda de profesionales en tecnología, podrás disfrutar de salarios competitivos y una estabilidad laboral envidiable. ¡No esperes más y comienza tu camino hacia el éxito con KeepCoding!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado