Uso de Fetch API para Interactuar con Servidores HTTP

Clase 30 de 38Curso Básico de Vue.js 2

Resumen

¿Qué es Fetch y cómo se utiliza?

En el ámbito de la programación web, el uso de APIs para interactuar con servidores y recuperar datos es fundamental. Una de las herramientas más valiosas en este entorno es fetch, una funcionalidad moderna y ampliamente soportada por casi todos los navegadores.

Fetch permite realizar solicitudes HTTP de una manera sencilla y eficiente sin depender de librerías externas. Esto resulta ideal para proyectos que buscan mantener una estructura ligera y eficiente.

¿Cómo funciona Fetch en la API CoinCap?

Para ejemplificar el uso de fetch, vamos a crear una implementación que interactúe con la API de CoinCap. Este servicio permite acceder a diversas características relacionadas con criptomonedas, como obtener listas de activos, leer sus detalles, y más. En nuestro proyecto, crearemos una función que obtenga una lista de criptomonedas utilizando fetch.

// Definimos la URL base de la API
const apiUrl = 'https://api.coincap.io/v2';

// Función para obtener una lista de criptomonedas
async function getAssets() {
  const response = await fetch(`${apiUrl}/assets?limit=20`);
  const data = await response.json();
  return data.data; // Devolveremos los datos de las criptomonedas
}

Este código realiza una solicitud a la API para obtener un máximo de veinte activos. El uso de template strings facilita la construcción dinámica de URLs, permitiendo personalizar las solicitudes según las necesidades del proyecto.

¿Cómo integrar Fetch en componentes Vue?

Una vez obtenidos los datos de la API, el siguiente paso es integrarlos en un componente de Vue.js. Para ello, primero debemos importar la función que accede a la API y luego almacenar los datos en una propiedad del estado del componente.

import { getAssets } from '@/api'; // Importamos la función previamente definida

export default {
  data() {
    return {
      assets: [] // Propiedad para almacenar los activos
    };
  },
  async created() {
    this.assets = await getAssets(); // Asignamos los datos obtenidos al cargar el componente
  }
}

Este patrón permite que, al montarse el componente en la interfaz, automáticamente acceda a la API de CoinCap, obtenga los datos, y los almacene para ser utilizados en la vista.

¿Cómo renderizar datos en una tabla usando Vue?

Para visualizar los datos obtenidos, usaremos directivas como v-for en las plantillas de Vue para renderizar cada criptomoneda en una tabla. Esta técnica es eficiente y permite manejar grandes volúmenes de datos de manera ordenada.

<table>
  <thead>
    <tr>
      <th>Imagen</th>
      <th>Nombre</th>
      <th>Precio</th>
      <th>Rango</th>
      <th>Variación</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="asset in assets" :key="asset.id">
      <td><img :src="`https://api.coincap.io/assets/icons/${asset.symbol.toLowerCase()}@2x.png`" :alt="asset.name" /></td>
      <td>{{ asset.name }}</td>
      <td>${{ asset.priceUsd }}</td>
      <td>{{ asset.rank }}</td>
      <td>{{ asset.changePercent24Hr }}%</td>
    </tr>
  </tbody>
</table>

Con este enfoque, cada criptomoneda se presenta con su imagen, nombre, precio, rango y variación en 24 horas. La estructura es clara y bien organizada, lo que facilita el manejo de los datos en la interfaz.

¿Cómo optimizar el desarrollo con ESLint y Prettier?

Para garantizar un código limpio y mantenible, herramientas como ESLint y Prettier son indispensables. Estas permiten estandarizar el estilo de código y corregir errores automáticamente. Se configura un archivo .prettierrc para establecer las reglas preferidas.

{
  "semi": false,
  "singleQuote": true
}

Con esto, podemos personalizar aspectos como el uso de comillas simples y la eliminación de punto y coma, alineando el proyecto con nuestras preferencias estilísticas.

Al final de esta guía, has aprendido a trabajar de manera eficiente con fetch, integrando datos en componentes Vue, y asegurando calidad de código con herramientas de linters. Sigue explorando y experimentando con estas metodologías para desarrollar aplicaciones robustas y dinámicas. ¡Tu curiosidad y dedicación son tus mejores aliados en el aprendizaje!