TechLead
Principiante
15 min
Lección 1 de 10
API

Fundamentos de APIs

Comprender qué son las APIs, cómo funcionan y por qué son esenciales en el desarrollo moderno

¿Qué es una API?

Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y protocolos que permite que diferentes aplicaciones de software se comuniquen entre sí. Piensa en ella como un mesero en un restaurante: tú (el cliente) le dices al mesero (la API) lo que quieres, y el mesero trae tu pedido desde la cocina (el servidor).

Las APIs están en todas partes en el desarrollo de software moderno. Cuando consultas el clima en tu teléfono, publicas en redes sociales o realizas un pago en línea, estás usando APIs detrás de escena.

🔗 API en Acción

📱 Cliente

Tu App

→ Petición →
🔌 API

Interfaz

→ Respuesta →
🖥️ Servidor

Base de Datos

Tipos de APIs

🌐 APIs Web (APIs HTTP)

Se comunican a través de Internet usando el protocolo HTTP. El tipo más común.

  • • APIs REST
  • • APIs GraphQL
  • • APIs SOAP

📚 APIs de Biblioteca/Framework

Proporcionadas por lenguajes de programación y bibliotecas para uso local.

  • • DOM API
  • • API de React
  • • APIs de Node.js

🖥️ APIs del Sistema Operativo

Permiten que las aplicaciones interactúen con el SO.

  • • Windows API
  • • POSIX
  • • APIs del Sistema de Archivos

🔧 APIs de Hardware

Interfaz con componentes de hardware.

  • • API de Cámara
  • • API de Geolocalización
  • • API de Bluetooth

Arquitecturas de API Web

REST (Transferencia de Estado Representacional)

Estilo de API web más popular. Usa métodos HTTP y comunicación sin estado.

// Ejemplo de API REST
GET /api/users/123        // Obtener usuario 123
POST /api/users           // Crear nuevo usuario
PUT /api/users/123        // Actualizar usuario 123
DELETE /api/users/123     // Eliminar usuario 123

GraphQL

Lenguaje de consulta para APIs. El cliente especifica exactamente qué datos necesita.

// Ejemplo de consulta GraphQL
query {
  user(id: 123) {
    name
    email
    posts {
      title
    }
  }
}

WebSocket

Canal de comunicación full-duplex para datos en tiempo real.

// Ejemplo de WebSocket
const socket = new WebSocket('wss://api.example.com/ws');

socket.onmessage = (event) => {
  console.log('Recibido:', event.data);
};

socket.send('¡Hola Servidor!');

Ciclo de Petición/Respuesta HTTP

Cada llamada a la API sigue un patrón de petición/respuesta:

Componentes de la Petición:

// Estructura de Petición HTTP
{
  method: "GET",                    // Método HTTP
  url: "https://api.example.com/users",  // URL del Endpoint
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer token123"
  },
  body: {                           // Para POST/PUT/PATCH
    "name": "Juan Pérez",
    "email": "juan@example.com"
  }
}

Componentes de la Respuesta:

// Estructura de Respuesta HTTP
{
  status: 200,                      // Código de Estado
  statusText: "OK",                 // Mensaje de Estado
  headers: {
    "Content-Type": "application/json",
    "X-RateLimit-Remaining": "99"
  },
  body: {                           // Datos de Respuesta
    "id": 123,
    "name": "Juan Pérez",
    "email": "juan@example.com"
  }
}

Métodos HTTP

Método Propósito Tiene Cuerpo Idempotente
GET Recuperar datos No ✅ Sí
POST Crear nuevo recurso ❌ No
PUT Actualizar/reemplazar recurso ✅ Sí
PATCH Actualización parcial ❌ No
DELETE Eliminar recurso Opcional ✅ Sí

Tu Primera Llamada a la API

Hagamos una llamada real a la API usando la Fetch API de JavaScript:

// Obteniendo datos desde una API pública
async function getUsers() {
  try {
    // Hacer la petición a la API
    const response = await fetch('https://jsonplaceholder.typicode.com/users');
    
    // Verificar si la petición fue exitosa
    if (!response.ok) {
      throw new Error(`¡Error HTTP! estado: ${response.status}`);
    }
    
    // Parsear respuesta JSON
    const users = await response.json();
    
    // Usar los datos
    console.log('Usuarios:', users);
    
    // Mostrar primer usuario
    users.forEach(user => {
      console.log(`- ${user.name} (${user.email})`);
    });
    
    return users;
  } catch (error) {
    console.error('Error al obtener usuarios:', error);
  }
}

// Llamar a la función
getUsers();

/*
Salida:
Usuarios: [{id: 1, name: "Leanne Graham", ...}, ...]
- Leanne Graham (Sincere@april.biz)
- Ervin Howell (Shanna@melissa.tv)
...
*/

Términos Comunes de API

🔗 Endpoint

Una URL específica donde se puede acceder a una API. Ejemplo: /api/users

📦 Payload

Los datos enviados en el cuerpo de una petición (normalmente JSON).

📋 Headers

Metadatos sobre la petición (tokens de autenticación, tipo de contenido, etc.).

🔢 Código de Estado

Número que indica el resultado de la petición (200 = éxito, 404 = no encontrado, etc.).

🔑 Autenticación

Probar identidad para acceder a recursos protegidos (claves API, tokens).

⏱️ Limitación de Tasa

Restricción del número de llamadas a la API dentro de un período de tiempo.

💡 Puntos Clave

  • Las APIs permiten la comunicación entre diferentes sistemas de software
  • Las APIs Web usan el protocolo HTTP con métodos como GET, POST, PUT, DELETE
  • REST es la más común de las arquitecturas de API web
  • Cada petición obtiene una respuesta con código de estado y datos
  • JSON es el estándar para el formato de datos en APIs modernas