Cómo consumir APIs externas en React paso a paso

Cómo consumir APIs externas en React paso a paso

Una de las grandes ventajas de React es que permite construir interfaces dinámicas capaces de obtener información desde servidores externos. Para conseguirlo, normalmente utilizamos APIs REST, que permiten enviar y recibir datos mediante solicitudes HTTP.

En este artículo aprenderás paso a paso cómo consumir una API externa desde una aplicación React.

1. ¿Qué necesitamos?

Para este ejemplo utilizaremos:

  • React.
  • JavaScript.
  • fetch(), incluido en los navegadores modernos.
  • Una API pública para realizar pruebas.

Puedes utilizar, por ejemplo, JSONPlaceholder, una API gratuita que proporciona datos ficticios.

2. Crear el componente

Primero crea un componente llamado Usuarios.jsx:

import { useEffect, useState } from "react";

function Usuarios() {
    const [usuarios, setUsuarios] = useState([]);
    const [cargando, setCargando] = useState(true);

    useEffect(() => {
        fetch("https://jsonplaceholder.typicode.com/users")
            .then(respuesta => respuesta.json())
            .then(datos => {
                setUsuarios(datos);
                setCargando(false);
            })
            .catch(error => {
                console.error("Error:", error);
                setCargando(false);
            });
    }, []);

    return (
        <div>
            <h2>Usuarios</h2>

            {cargando ? (
                <p>Cargando usuarios...</p>
            ) : (
                usuarios.map(usuario => (
                    <p key={usuario.id}>
                        {usuario.name} - {usuario.email}
                    </p>
                ))
            )}
        </div>
    );
}

export default Usuarios;

Aquí aparecen dos conceptos fundamentales de React: useState y useEffect.

3. ¿Qué hace useEffect?

useEffect permite ejecutar código cuando ocurre determinado evento en el ciclo de vida del componente.

En este caso:

useEffect(() => {
    // Solicitud a la API
}, []);

El array vacío [] indica que la solicitud se ejecutará una sola vez cuando el componente se monte.

4. Realizar la petición

La función fetch() realiza una solicitud HTTP:

fetch("https://jsonplaceholder.typicode.com/users")

La API responde con información en formato JSON. Para convertir esa respuesta:

respuesta.json()

Después podemos guardar los datos utilizando:

setUsuarios(datos);

Esto actualiza el estado y provoca que React vuelva a renderizar el componente.

5. Mostrar los resultados

Una vez recibidos los usuarios, podemos recorrer el array utilizando map():

usuarios.map(usuario => (
    <p key={usuario.id}>
        {usuario.name}
    </p>
))

La propiedad key permite que React identifique correctamente cada elemento de la lista.

6. Manejar errores

Las APIs pueden fallar por diferentes motivos: problemas de conexión, servidor caído, URL incorrecta o errores de autenticación.

Por eso debemos utilizar catch():

.catch(error => {
    console.error("Error:", error);
});

En aplicaciones reales también es recomendable mostrar un mensaje amigable al usuario.

7. Usar async/await

Otra forma, normalmente más cómoda de leer, es utilizar async/await:

useEffect(() => {
    const obtenerUsuarios = async () => {
        try {
            const respuesta = await fetch(
                "https://jsonplaceholder.typicode.com/users"
            );

            const datos = await respuesta.json();

            setUsuarios(datos);
        } catch (error) {
            console.error(error);
        } finally {
            setCargando(false);
        }
    };

    obtenerUsuarios();
}, []);

Esta estructura facilita el manejo de operaciones asíncronas y errores.

8. ¿Y las APIs protegidas?

En proyectos reales es habitual que una API requiera autenticación mediante un token JWT. En ese caso podemos enviarlo dentro de los encabezados:

fetch("https://api.ejemplo.com/usuarios", {
    headers: {
        Authorization: `Bearer ${token}`
    }
});

Nunca deberías colocar claves privadas o secretos directamente en el código del frontend.

9. Buenas prácticas

Cuando trabajes con APIs externas en React:

  • Controla los estados de carga.
  • Maneja correctamente los errores.
  • Valida las respuestas del servidor.
  • Utiliza variables de entorno para configuraciones apropiadas.
  • Separa la lógica de las peticiones en servicios cuando el proyecto crezca.
  • Considera herramientas como Axios, React Query o TanStack Query para aplicaciones más complejas.

Consumir una API externa en React es un proceso sencillo: realizamos una petición HTTP, convertimos la respuesta a JSON, almacenamos los datos en un estado y finalmente los mostramos en la interfaz.

Dominar este proceso es fundamental para crear aplicaciones modernas, porque permite conectar React con servicios de usuarios, productos, pagos, bases de datos y prácticamente cualquier backend que exponga una API REST.

Te puede interesar...

Deja un comentario