Axios para Principiantes - Guía Paso a Paso

 

Axios para Principiantes - Guía Paso a Paso

📚 ¿Qué es Axios?

Axios es como un "mensajero" entre tu aplicación web y un servidor. Imagina que tu app necesita pedir información (como una lista de películas) a un servidor en internet - Axios se encarga de enviar esa "carta" y traer la "respuesta".


🎯 ¿Por qué usar Axios? (Para principiantes)

Sin Axios:

text
Tu App → "Oye servidor, dame películas" ❌ (no sabe cómo comunicarse)

Con Axios:

text
Tu App → Axios → "GET /películas" → Servidor → ✓ Películas recibidas ✅

Ventajas:

  • Más fácil que el método nativo de JavaScript (fetch)

  • Mejor manejo de errores

  • Funciona en todos los navegadores

  • Soporte para promesas (async/await)


🚀 PASO 1: INSTALACIÓN (La Parte Fácil)

¿Qué es NPM?

NPM es como una "tienda de aplicaciones" para programadores. En lugar de ir a una tienda, escribes comandos en la terminal.

Pasos concretos:

  1. Abre la terminal (Command Prompt, Terminal, o la terminal de VS Code)

  2. Asegúrate de estar en tu carpeta del proyecto:

    bash
    cd ruta/de/tu/proyecto
  3. Escribe exactamente esto y presiona Enter:

    bash
    npm install axios
  4. Verás algo como esto:

    text
    + axios@1.6.0
    added 1 package in 2s

    ✅ ¡Listo! Axios está instalado.


📁 PASO 2: ENTENDER LA ESTRUCTURA

Tu proyecto debería verse así:

text
tu-proyecto/
├── node_modules/    (📦 Aquí vive Axios - NO LA TOQUES)
├── src/
│   ├── services/    (👨‍💻 Aquí crearemos nuestros archivos)
│   │   ├── http-common.js    (📋 Configuración general)
│   │   └── movieService.js   (🎬 Servicio de películas)
│   └── ... otros archivos ...
├── package.json     (📄 Lista de paquetes instalados)
└── ...

🔧 PASO 3: CONFIGURACIÓN PASO A PASO

Archivo 1: http-common.js (El "manual de instrucciones")

javascript
// PASO 1: Importar Axios (como traer una herramienta)
import axios from 'axios';

// PASO 2: Crear y configurar tu "mensajero personalizado"
const http = axios.create({
  // DIRECCIÓN del servidor
  baseURL: 'http://localhost:8000/api/',
  
  // FORMATO de los mensajes (siempre JSON)
  headers: {
    'Content-Type': 'application/json'
  }
});

// PASO 3: Exportar para poder usarlo en otros archivos
export default http;

📖 Traducción a español cotidiano:

"Crea un mensajero llamado http que siempre vaya a la dirección http://localhost:8000/api/ y que todos sus mensajes sean en formato JSON."


🎬 PASO 4: CREAR EL SERVICIO DE PELÍCULAS

Archivo 2: movieService.js (El "menú de opciones")

javascript
// PASO 1: Traer nuestro mensajero configurado
import http from './http-common';

// PASO 2: Crear todas las funciones que necesitamos
class MovieService {
  
  // Función 1: OBTENER TODAS las películas
  getAll() {
    return http.get('/movies');
    // Traducción: "Mensajero, ve a buscar las películas"
  }
  
  // Función 2: OBTENER UNA película por su ID
  getById(id) {
    return http.get(`/movies/${id}`);
    // Traducción: "Busca la película con número ${id}"
    // Ejemplo: Si id=5 → "/movies/5"
  }
  
  // Función 3: CREAR nueva película
  create(movieData) {
    return http.post('/movies', movieData);
    // Traducción: "Envía estos datos para crear película nueva"
  }
  
  // Función 4: ACTUALIZAR película
  update(id, movieData) {
    return http.put(`/movies/${id}`, movieData);
    // Traducción: "Actualiza la película ${id} con estos nuevos datos"
  }
  
  // Función 5: ELIMINAR película
  delete(id) {
    return http.delete(`/movies/${id}`);
    // Traducción: "Elimina la película número ${id}"
  }
}

// PASO 3: Crear y exportar una "caja de herramientas"
export default new MovieService();

💡 PASO 5: ¿CÓMO USARLO EN MI APP?

Ejemplo práctico en un componente:

javascript
// 1. Importar el servicio (traer la caja de herramientas)
import movieService from './services/movieService';

// 2. Crear una función para obtener películas
async function cargarPeliculas() {
  try {
    console.log("⏳ Buscando películas...");
    
    // PEDIR las películas al servidor
    const respuesta = await movieService.getAll();
    
    // respuesta.data contiene las películas
    console.log("✅ Películas recibidas:", respuesta.data);
    console.log("📊 Total de películas:", respuesta.data.length);
    
    return respuesta.data;
    
  } catch (error) {
    console.log("❌ ¡Ups! Error al cargar películas:", error.message);
    console.log("💡 Consejo: Verifica que el servidor esté encendido");
    return [];
  }
}

// 3. Usar la función
cargarPeliculas();

🎮 ANALOGÍA COMPLETA (Para entender mejor)

Imagina que eres el dueño de una videotienda:

  1. npm install axios = Contratar a un mensajero (Axios)

  2. http-common.js = Darle al mensajero:

    • 📍 Dirección de la bodega (baseURL)

    • 📄 Formato de los pedidos (headers)

  3. movieService.js = Crear un catálogo de servicios:

    • "Pedir todas las películas" (getAll())

    • "Buscar película por código" (getById(id))

    • "Agregar nueva película" (create(data))

  4. Usar el servicio = Llamar al mensajero cuando necesites algo


🚨 ERRORES COMUNES DE PRINCIPIANTES

Error 1: "No encuentro el módulo"

✅ Solución: Asegúrate de que la ruta sea correcta

javascript
// MAL
import http from '../http-common';  // ❌

// BIEN (si está en la misma carpeta)
import http from './http-common';   // ✅

Error 2: "El servidor no responde"

✅ Verifica:

  1. ¿El servidor está encendido? (http://localhost:8000)

  2. ¿La URL es correcta?

  3. ¿Hay error de CORS? (usa un proxy si es necesario)

Error 3: "No se actualizan los datos"

✅ Recuerda usar await:

javascript
// MAL (no espera respuesta)
const peliculas = movieService.getAll();  // ❌

// BIEN (espera la respuesta)
const peliculas = await movieService.getAll();  // ✅

🛠️ EJERCICIO PRÁCTICO

  1. Crea estos archivos en tu proyecto:

    text
    src/
    └── services/
        ├── http-common.js
        └── movieService.js
  2. Copia el código de arriba en cada archivo

  3. En tu componente principal, añade:

    javascript
    import movieService from './services/movieService';
    
    // Prueba simple
    movieService.getAll()
      .then(respuesta => console.log("Funciona!", respuesta.data))
      .catch(error => console.log("Error:", error));
  4. Ejecuta tu app y revisa la consola del navegador (F12)


✅ CHECKLIST DE COMPLETADO

  • Instalé Axios con npm install axios

  • Creé la carpeta services/

  • Creé http-common.js con la configuración

  • Creé movieService.js con los 5 métodos

  • Importé el servicio en mi componente

  • Probé hacer una petición GET

  • Manejé errores con try-catch


📖 RESUMEN EN 1 MINUTO

  1. Axios = Mensajero para hablar con servidores

  2. Instalar = npm install axios en la terminal

  3. Configurar = Crear http-common.js con URL base

  4. Servicio = Crear funciones en movieService.js

  5. Usar = Importar y llamar await movieService.getAll()

  6. Manejar errores = Siempre usar try-catch


❓ ¿QUÉ SIGUE?

Una vez que domines esto, puedes aprender:

  1. Autenticación (agregar tokens a las peticiones)

  2. Interceptores (modificar todas las peticiones automáticamente)

  3. Gestión de estado (usar con Redux o Context API)


¿Tienes alguna duda específica sobre algún paso? ¡Pregunta! Cada programador empezó desde cero 😊

Comentarios

Entradas más populares de este blog

15-Tutorial: Crear Película en React con useState

Tutorial de React para Principiantes