3 Horas Intermedio APIJSONNode.jsExpress

Consumo de APIs y Transferencia de JSON en Aplicaciones Web

Aprende a consumir APIs REST utilizando fetch(), procesar JSON y almacenar información en MySQL mediante Node.js y Express.

Presentación

Consumo de APIs y Transferencia de JSON - Presentación

Clic para interactuar · ESC para salir

¿Qué es una API?

Una API (Application Programming Interface) permite que dos sistemas puedan comunicarse entre sí.

Las APIs son utilizadas constantemente en aplicaciones modernas para:

  • Obtener información
  • Enviar datos
  • Consultar servicios externos
  • Integrar plataformas

Ejemplos de APIs

APIFunción
Google Maps APIMostrar mapas
Spotify APIObtener canciones
OpenWeather APIClima
PokeAPIInformación Pokémon

APIs REST

Las APIs REST funcionan mediante solicitudes HTTP.

Los métodos más comunes son:

MétodoFunción
GETObtener información
POSTEnviar información
PUTActualizar datos
DELETEEliminar datos

¿Qué es JSON?

JSON significa:

JavaScript Object Notation

Es el formato más utilizado para transferir información entre aplicaciones web.


Ejemplo de JSON

{
  "nombre": "pikachu",
  "tipo": "electric",
  "peso": 60
}

Características de JSON

  • Ligero
  • Fácil de leer
  • Fácil de procesar
  • Compatible con múltiples lenguajes

Partes de un JSON

ElementoEjemplo
Clave”nombre”
Valor”pikachu”
Objeto
Arreglo[ ]

Arquitectura Cliente-Servidor

En esta práctica utilizaremos una arquitectura web moderna.


Arquitectura utilizada

Frontend (HTML/CSS/JS)

fetch() + JSON

Node.js + Express

MySQL

Función de cada componente

ComponenteFunción
FrontendInterfaz visual
fetch()Comunicación HTTP
JSONTransferencia de datos
ExpressProcesar solicitudes
MySQLAlmacenar información

Flujo de Datos

Flujo completo del proyecto

  1. Usuario escribe un Pokémon
  2. Frontend consume la PokeAPI
  3. La API devuelve JSON
  4. JavaScript procesa datos
  5. Información se muestra en pantalla
  6. Usuario guarda Pokémon
  7. Frontend envía JSON al backend
  8. Express recibe datos
  9. MySQL almacena información

Flujo visual

Usuario

Frontend

PokeAPI

JSON

Frontend

Express

MySQL

Tecnologías Frontend

HTML5

Se utilizará para:

  • Estructura
  • Formularios
  • Botones
  • Tarjetas

CSS3

Se utilizará para:

  • Diseño visual
  • Responsive básico
  • Tarjetas Pokémon
  • Distribución

JavaScript Vanilla

Permitirá:

  • Consumir APIs
  • Manipular DOM
  • Procesar JSON
  • Enviar datos

fetch()

Será utilizado para:

  • Consumir la PokeAPI
  • Enviar información al backend

Tecnologías Backend

Node.js

Node.js permite ejecutar JavaScript en el servidor.


Express.js

Express facilita:

  • Crear APIs
  • Manejar rutas
  • Recibir JSON
  • Responder solicitudes

Librerías obligatorias

Instalar:

npm install express cors mysql2

Función de cada librería

LibreríaFunción
expressCrear servidor
corsPermitir comunicación
mysql2Conectar MySQL

Base de Datos MySQL

MySQL almacenará los Pokémon guardados.


Crear base de datos

CREATE DATABASE pokedex_web;

Crear tabla

USE pokedex_web;

CREATE TABLE pokemon (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(100),
    tipo VARCHAR(100),
    altura INT,
    peso INT,
    experiencia INT,
    imagen TEXT
);

Explicación

CampoFunción
idIdentificador
nombreNombre Pokémon
tipoTipo
alturaAltura
pesoPeso
experienciaExperiencia base
imagenURL imagen

Configuración del Proyecto

Estructura del proyecto

pokedex-app/

├── frontend/
│   ├── index.html
│   ├── style.css
│   └── app.js

├── backend/
│   ├── server.js
│   ├── db.js
│   └── package.json

└── database/
    └── pokedex.sql

Inicializar backend

Dentro de /backend

npm init -y

Instalar dependencias

npm install express cors mysql2

Consumiendo la PokeAPI

Endpoint utilizado

:contentReference[oaicite:0]{index=0}
https://pokeapi.co/api/v2/pokemon/pikachu

Ejemplo usando fetch()

async function buscarPokemon(nombre) {

    const response = await fetch(
        `https://pokeapi.co/api/v2/pokemon/${nombre}`
    );

    const data = await response.json();

    console.log(data);
}

¿Qué ocurre aquí?

LíneaFunción
fetch()Solicita información
awaitEspera respuesta
response.json()Convierte a JSON
console.log()Mostrar datos

Datos obtenidos

{
  "name": "pikachu",
  "height": 4,
  "weight": 60
}

Guardando Datos en MySQL

Enviar JSON al backend

fetch("http://localhost:3000/pokemon", {
    method: "POST",
    headers: {
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        nombre: "pikachu",
        tipo: "electric"
    })
});

Endpoint Express

app.post("/pokemon", (req, res) => {

    console.log(req.body);

    res.send("Pokemon recibido");
});

Insertar en MySQL

const sql = `
INSERT INTO pokemon
(nombre, tipo, altura, peso, experiencia, imagen)
VALUES (?, ?, ?, ?, ?, ?)
`;

Verificar registros

SELECT * FROM pokemon;

Lab

Actividad · Pokedex Web

Objetivo

Desarrollar una aplicación web que consuma la PokeAPI y almacene Pokémon en MySQL utilizando JSON y Express.

Requisitos

  • Consumir la PokeAPI usando fetch()
  • Mostrar información del Pokémon
  • Enviar datos al backend
  • Guardar información en MySQL
  • Crear endpoint GET y POST

Tecnologías obligatorias

  • HTML5
  • CSS3
  • JavaScript Vanilla
  • Node.js
  • Express.js
  • MySQL

Entregables

  1. Proyecto completo
  2. Base de datos SQL
  3. Capturas funcionando
  4. Explicación técnica

Cierre

Las aplicaciones web modernas dependen de la comunicación entre múltiples tecnologías.

En esta práctica aprendiste:

  • Cómo consumir APIs
  • Cómo usar fetch()
  • Cómo trabajar con JSON
  • Cómo transferir información
  • Cómo usar Express
  • Cómo almacenar datos en MySQL

Estos conceptos son fundamentales para el desarrollo Full Stack moderno.