14-Instalación y Configuración de Axios para Leticias HTTP
Introducción
Axios es una librería JavaScript ampliamente utilizada para realizar peticiones HTTP desde el navegador o Node.js. En este tutorial aprenderemos a instalarla y configurarla adecuadamente para un proyecto.
🚀 Paso 1: Instalación de Axios
Abre tu terminal en la carpeta de tu proyecto
Ejecuta el siguiente comando:
npm install axiosNota: En el tutorial original menciona "actions" pero se refiere a Axios. La instalación correcta es con npm install axios.
Espera a que complete la instalación. Verás algo similar a:
+ axios@1.6.0
added 1 package in 2s📁 Paso 2: Crear archivo de configuración HTTP
Crea un nuevo archivo llamado
http-common.jsen la carpetasrc/Copia el siguiente código:
// Importar Axios
import axios from 'axios';
// Crear y exportar instancia configurada de Axios
export default axios.create({
baseURL: 'http://localhost:8000/api/', // URL base de tu API
headers: {
'Content-Type': 'application/json' // Tipo de contenido por defecto
}
});🔍 Explicación de la configuración:
baseURL: URL base a la que se enviarán todas las peticiones
headers: Encabezados por defecto (en este caso, especificamos que trabajaremos con JSON)
🎬 Paso 3: Crear un servicio para películas
Crea un archivo llamado
movieService.jsImporta tu configuración HTTP:
import http from './http-common';Agrega los métodos para CRUD:
class MovieService {
// Obtener todas las películas
getAll() {
return http.get('/movies');
}
// Obtener película por ID
getById(id) {
return http.get(`/movies/${id}`);
}
// Crear nueva película
create(data) {
return http.post('/movies', data);
}
// Actualizar película existente
update(id, data) {
return http.put(`/movies/${id}`, data);
}
// Eliminar película
delete(id) {
return http.delete(`/movies/${id}`);
}
}
// Exportar instancia del servicio
export default new MovieService();💡 Puntos importantes a recordar:
1. Uso de template literals
Cuando necesitas pasar parámetros en la URL, usa backticks (`):
`/movies/${id}`Cuando la URL es estática, puedes usar comillas simples:
'/movies'2. Métodos HTTP disponibles:
http.get()- Obtener datoshttp.post()- Crear nuevos recursoshttp.put()- Actualizar recursos existenteshttp.delete()- Eliminar recursos
3. Estructura de carpetas recomendada:
src/
├── services/
│ ├── http-common.js
│ └── movieService.js
└── ...🧪 Paso 4: Usar el servicio en tu aplicación
Ejemplo de cómo consumir el servicio en un componente:
import movieService from './services/movieService';
// Obtener todas las películas
async function fetchMovies() {
try {
const response = await movieService.getAll();
console.log(response.data);
} catch (error) {
console.error('Error al obtener películas:', error);
}
}
// Crear una nueva película
async function createMovie(movieData) {
try {
const response = await movieService.create(movieData);
console.log('Película creada:', response.data);
} catch (error) {
console.error('Error al crear película:', error);
}
}🎯 Buenas prácticas:
Manejo de errores: Siempre usa try-catch al hacer peticiones
Variables de entorno: Considera almacenar la URL base en variables de entorno
Interceptores: Axios permite agregar interceptores para manejar tokens de autenticación globalmente
Timeouts: Configura timeouts para evitar peticiones eternas
🔧 Configuración avanzada (opcional)
Puedes agregar interceptores en http-common.js:
import axios from 'axios';
const instance = axios.create({
baseURL: 'http://localhost:8000/api/',
headers: {
'Content-Type': 'application/json'
},
timeout: 5000 // Timeout de 5 segundos
});
// Interceptor para agregar token de autenticación
instance.interceptors.request.use(
(config) => {
const token = localStorage.getItem('token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
(error) => {
return Promise.reject(error);
}
);
// Interceptor para respuestas
instance.interceptors.response.use(
(response) => response,
(error) => {
// Manejo global de errores
console.error('Error HTTP:', error.response?.status);
return Promise.reject(error);
}
);
export default instance;✅ Resumen
Hemos aprendido a:
✅ Instalar Axios con npm
✅ Crear configuración base para peticiones HTTP
✅ Implementar un servicio organizado
✅ Usar métodos HTTP (GET, POST, PUT, DELETE)
✅ Exportar e importar correctamente los servicios
Ahora tienes una base sólida para realizar peticiones HTTP en tu aplicación de manera organizada y mantenible
Comentarios
Publicar un comentario