Dashboard de Tenis en Tiempo Real con WebSocket y JavaScript

Imagen
¿Por qué utilizar WebSocket en lugar de una API REST? El caso de Tennis API Cuando trabajamos con APIs, normalmente pensamos en solicitudes HTTP tradicionales donde una aplicación consulta información cada cierto tiempo. Sin embargo, para aplicaciones que requieren datos en tiempo real, existe una alternativa mucho más eficiente: WebSocket. Mientras exploraba las capacidades de Tennis API encontré su integración mediante Socket.IO, una tecnología que permite recibir actualizaciones en tiempo real sin necesidad de realizar consultas constantes al servidor. ¿Cómo funciona una API REST tradicional? Con una API REST, la aplicación debe preguntar periódicamente si existen nuevos datos. Por ejemplo: setInterval(async () => { const response = await fetch("/live-scores"); const data = await response.json(); console.log(data); }, 5000); En este caso la aplicación realiza una consulta cada 5 segundos. El problema es que muchas veces no existe información nue...

Dashboard de Fórmula 1: Ranking de Pilotos y Equipos por Temporada

 

Dashboard de Fórmula 1 con JavaScript y API-FORMULA-1

Si estás buscando una forma sencilla de visualizar resultados de Fórmula 1 en una página web, en este artículo te mostraré cómo construir un dashboard interactivo utilizando HTML, CSS, JavaScript y la API-FORMULA-1 de API-SPORTS.

El resultado es una aplicación web que permite consultar el ranking de pilotos y equipos por temporada, mostrando los datos obtenidos en tiempo real desde una API REST.

¿Qué muestra el dashboard?

La aplicación permite:

  • Seleccionar una temporada entre 2019 y 2026.

  • Consultar la clasificación de pilotos.

  • Consultar la clasificación de constructores.

  • Visualizar los puntos acumulados por cada piloto y equipo.

  • Mostrar imágenes de pilotos y logotipos de escuderías.

Toda la información se obtiene dinámicamente desde la API-FORMULA-1, evitando la necesidad de almacenar datos localmente.




API utilizada

Para este proyecto se utiliza la API-FORMULA-1 de API-SPORTS disponible a través de RapidAPI.

La documentación oficial puede consultarse en:

https://rapidapi.com/api-sports/api/API-FORMULA-1

Los endpoints utilizados son:

Ranking de pilotos

https://api-formula-1.p.rapidapi.com/rankings/drivers?season=2025

Ranking de equipos

https://api-formula-1.p.rapidapi.com/rankings/teams?season=2025

Estos endpoints devuelven la clasificación oficial de cada temporada en formato JSON.



Tecnologías utilizadas

El dashboard fue desarrollado utilizando:

  • HTML5 para la estructura de la página.

  • CSS3 para el diseño visual.

  • JavaScript para la lógica de la aplicación.

  • Fetch API para realizar las consultas HTTP.

  • API-FORMULA-1 para obtener los datos deportivos.

Función principal del proyecto

La función principal del dashboard es:

async function fetchRankings()

Esta función se ejecuta cuando el usuario selecciona una temporada y presiona el botón "Ver Ranking".

Su objetivo es:

  1. Obtener la temporada seleccionada.

  2. Construir las URLs de consulta.

  3. Realizar las peticiones HTTP a la API.

  4. Procesar las respuestas JSON.

  5. Mostrar los resultados en pantalla.

Obtención de la temporada

const season = document.getElementById('season').value;

Este código obtiene el valor seleccionado por el usuario en el menú desplegable.

Construcción de las URLs

const driversUrl = `https://api-formula-1.p.rapidapi.com/rankings/drivers?season=${season}`;
const teamsUrl = `https://api-formula-1.p.rapidapi.com/rankings/teams?season=${season}`;

Las URLs se generan dinámicamente utilizando la temporada seleccionada.

Realizando las consultas con Fetch API

Para obtener la clasificación de pilotos se utiliza la función fetch:

const driversResponse = await fetch(driversUrl, {
    method: "GET",
    headers: {
        'x-rapidapi-key': 'TU_API_KEY',
        'x-rapidapi-host': 'api-formula-1.p.rapidapi.com'
    }
});

La respuesta recibida se convierte posteriormente a formato JSON:

const driversData = await driversResponse.json();

El mismo procedimiento se utiliza para consultar la clasificación de equipos.

Mostrando los resultados

Una vez obtenidos los datos, se utilizan dos funciones independientes:

mostrarRankingDrivers(driversData);
mostrarRankingTeams(teamsData);

Estas funciones recorren la respuesta JSON utilizando:

data.response.forEach(...)

Por cada elemento encontrado se crea dinámicamente un bloque HTML que muestra:

  • Posición.

  • Nombre del piloto o equipo.

  • Puntos acumulados.

  • Imagen o logotipo.

Beneficios de este enfoque

Utilizar una API REST ofrece varias ventajas:

  • Datos actualizados automáticamente.

  • Menor mantenimiento.

  • Escalabilidad.

  • Fácil integración con otros proyectos.

  • Posibilidad de consultar temporadas históricas.

Conclusión

Este dashboard demuestra cómo consumir datos deportivos en tiempo real utilizando JavaScript y la API-FORMULA-1 de API-SPORTS.

Con pocas líneas de código es posible crear aplicaciones interactivas capaces de visualizar estadísticas, clasificaciones y resultados históricos de Fórmula 1. Además, este mismo enfoque puede utilizarse para desarrollar dashboards más avanzados, aplicaciones deportivas o proyectos de análisis de datos.

Demo








Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

👉 Cómo obtener el tipo de cambio en Excel con API de Banxico (paso a paso)

Macro en Word para automatizar documentos: genera diplomas en segundos (con código VBA)