fetch en javascript

Aprende a usar Fetch en Javascript con estos 3 Tips

Tiempo de lectura: 4 minutos
Rate this post

Fetch en Javascript, permite realizar una de las acciones más comunes que realizamos cuando trabajamos con Javascript; realizar peticiones a un servidor para poder recoger la petición y hacer uso de ella o estar en constante actualización.

Por ejemplo, cuando queremos iniciar sesión consultando un registro en la base de datos o cuando queremos obtener la últimas notificaciones de nuestra sistema de mensajería, todo esto sin tener que recargar la página, son cosas que comúnmente podemos realizar mediante Fetch API

Es importante mencionar que existen múltiples formas de realizar esto, como por ejemplo, mediante un objeto XHR o utilizando JQuery con sus métodos Ajax, Post, Get.

Sin embargo, el más moderno o actual sin duda es Fetch en Javascript, a pesar de que no es soportado por navegadores antiguos (No deberías de estar utilizando navegadores antiguos), es la forma actualmente utilizada para poder generar peticiones al servidor.

¿Cómo se usa fetch en Javascript?

Una de las caracteristicas más importantes de Fetch en Javascript, es que nos permite enviar peticiones mediante los verbos de http GET, POST, PUT, PATCH, DELETE, por mencionar algunos.

Es por ello que en esta ocasión quiero comentarte acerca de las cosas que podemos realizar mediante Fetch en Javascript, empecemos por lo básico, su sintaxis.

Sintaxis de Fetch en Javascript

const request = fetch(url, {options})
JavaScript

La sintaxis de Fetch en Javascript se compone del método fetch que recibe 2 párametros, el primero es la url, la cual es un parámetro requerido, mientras que el segundo es un objeto options, el cual será opcional.

Si no enviamos el parámetro opción dentro de la petición de Fetch en Javascript, automáticamente estaremos enviando una petición de tipo GET, esto lo interpretará el navegador y retornará la información en forma de promesa(promise).

Promesas en Javascript

Recuerda que para poder acceder a una promesa, normalmente tendremos que realizar 2 operaciones:

La primera será obtener la respuesta que retorna el servidor en un objeto de tipo Response el cual tendremos que parsear con el método json()

La segunda será el cuerpo o body de la solicitud, es decir, en términos sencillos, la información que estás esperando recibir del servidor, te dejo un ejemplo para analizarlo:

fetch('http://localhost/api-flight/users')
  .then(response => response.json())
  .then(json => console.log(json))
JavaScript

Como podrás observar, en la primera línea se envía la petición a la url, recuerda que como no pusimos parámetros, por defecto es una petición de tipo GET.

La petición fetch en Javascript se envío a un endpoint de un servidor local que tengo ejecutandose con PHP, Si quieres aprender a desarrollar una API en PHP te dejo el curso aquí.

Recuerda que adicional a esto también podemos hacer uso de cualquier otra tecnología para poder desarrollar APIs y realizar peticiones, por ejemplo, con node mediante fetch node js, pero ese es otro tema, por el momento, continuamos.

En la segunda línea obtenemos el objeto response y lo parseamos mediante el método json()

y en la tercera línea, ya podemos hacer uso del json, en este caso imprimí los resultados con un console.log() para poder revisar el contenido.

Respuesta de fetch en Javascript
fetch javascript example response

Existe otro método para poder realizar la petición fetch y es mediante el uso de async/await

const fetching =  async(url) => {
  const response = await fetch(url)
  const json = await response.json()
  console.log(json)
}

fetching('http://localhost/api-flight/users')
JavaScript

Lo primero que tendremos que hacer es definir una función de tipo async, si observas en la primera línea, definimos la función fetching y le pasamos por parámetro la url

Dentro de la función, añadimos el await, que sería el “reemplazo” del .then() que hicimos en el ejemplo anterior, esto lo seteamos a una variable response y volvemos a hacer uso del await para poder convertir el response en un json.

Ya por último, solo queda ejecutar la función pasandole la url que queramos consultar.

Si necesitamos hacer uso de las cabeceras o headers de la respuesta, podemos acceder de esta manera

console.log(response.headers.get('Content-length'))
JavaScript

En este caso, estaríamos accediendo a la cabecera Content Length del response.

Fetch POST

Si ahora quisieramos enviar una solicitud vía POST, te muestro con un ejemplo como hacerlo

const fetching =  async(url) => {
  const data = {
    "email": "hola@8devmx.com",
    "password": "mipassword"
  }
  
  const response = await fetch(url, {
    headers: {
      'Content-Type': 'application/json'
    },
    method: "POST",
    body: JSON.stringify(data)
  })
  const json = await response.json()
  console.log(json)
}

fetching('http://localhost/api-flight/auth')

JavaScript

En este caso, le estoy enviando datos a través de la constante data que contiene el email y password, adicional, envío el segundo parámetro de fetch que como puedes observar es un objeto, el cual contiene las propiedades headers, para poder indicar el Content-Type, la propiedad method, para indicar que es de tipo POST y el cuerpo de la petición que deberá enviarse mediante el método JSON.stringify(), todo lo demás quedó como lo teníamos en un principio cuando enviamos peticiones GET.

Recuerda que los objetos son un tipo de datos de los más ocupados en Javascript, ya que permiten almacenar colecciones de datos en una misma variable, por lo que podemos extraer el segundo parámetro de fetch en javascript y setearlo a una variable de tipo objeto, algo como esto:

const options = {
    headers: {
      'Content-Type': 'application/json'
    },
    method: "POST",
    body: JSON.stringify(data)
  }
JavaScript

Pasa exactamente lo mismo si quieres hacer peticiones de tipo PUT, PATCH o DELETE, la sintaxis es muy similar y obtendríamos la respuesta de la misma manera.

En resumen

Como podemos observar, el uso de Fetch en Javascript es muy sencillo, y nos permite realizar cosas bastante interesantes, además, te dejo algunos otros enlaces para complementar la información que te proporciono. Fetch Javascript w3schools

  1. JQuery y sus métodos AJAX se siguen ocupando, sin embargo, cada vez están más en desuso por lo que te recomiendo utilizar Fetch
  2. Fetch por defecto envia una petición de tipo GET
  3. Si queremos cambiar el verbo o método, debemos agregar el objeto options a nuestra petición fetch en Javascript como segundo parámetro.
  4. La respuesta del servidor retornará en forma de promesa mediante un objeto response
  5. Es posible acceder al status o headers de la promesa recibida
  6. Podemos hacer uso de la sintaxis mediante then() o también podemos hacer uso mediante async/await.

Si llegaste hasta este punto y te gusta mi contenido, te pido te suscribas a mi canal de Youtube en donde te explico esta información de una manera visual con ejemplos prácticos, Sígueme en mis redes sociales: Facebook e Instagram para más contenido.

También Podría interesarte

Social Share Buttons and Icons powered by Ultimatelysocial
YouTube
YouTube
Instagram
Scroll al inicio