API

Application Programming Interface

Semestre 1, 2025

¿Qué es una API?

Conjunto de reglas y protocolos que permite que diferentes aplicaciones se comuniquen entre sí.

Define cómo los componentes de software deben interactuar.

Analogía del Restaurante

  • Tú = Usuario/Aplicación cliente
  • Menú = Documentación de la API
  • Camarero = API
  • Cocina = Backend/Servidor
  • Comida = Respuesta/Datos

Importancia de las APIs

Las APIs son pilares fundamentales del ecosistema tecnológico moderno.

Integración de servicios heterogéneos

Permiten que sistemas completamente diferentes trabajen juntos de manera armoniosa.

Colaboración entre empresas y desarrolladores

Las empresas exponen funcionalidades a través de APIs, permitiendo que desarrolladores externos creen valor adicional.

Impulso a la innovación

Los desarrolladores pueden centrarse en crear nuevas funcionalidades basándose en servicios existentes.

Ejemplos cotidianos

  • Inicio de sesión con Google o Facebook
  • Pagos online con PayPal o tarjetas de crédito
  • Aplicaciones que muestran pronóstico del tiempo
  • Mapas interactivos en aplicaciones

Tipos de APIs y Arquitecturas

APIs REST

Representational State Transfer

Estilo arquitectónico para sistemas distribuidos que se ha convertido en el estándar de facto.

Principios clave de REST

  • Arquitectura cliente-servidor
  • Sin estado
  • Cacheable
  • Interfaz uniforme

Verbos HTTP en REST

  • GET: Obtener datos
  • POST: Crear un nuevo recurso
  • PUT: Actualizar completamente un recurso
  • PATCH: Actualizar parcialmente un recurso
  • DELETE: Eliminar un recurso

Ventajas de REST

  • Escalable y simple de entender
  • Independiente de la plataforma y el lenguaje
  • Fácil de testear y depurar
  • Basado en estándares web ampliamente adoptados

APIs SOAP

Simple Object Access Protocol

Protocolo más estructurado y formal para el intercambio de información.

  • Utiliza exclusivamente XML
  • Proporciona seguridad integrada
  • Más rígido y verboso que REST
  • Incluye un contrato formal (WSDL)

SOAP sigue siendo relevante en entornos empresariales con alta seguridad.

Backend

La parte de una aplicación que opera "tras bambalinas".

Invisible para el usuario final pero fundamental para el funcionamiento del sistema.

Componentes típicos del backend

  • Servidores
  • Bases de datos
  • Lógica de negocio
  • APIs

Relación entre backend y APIs

Backend = Cocina del restaurante

APIs = Camareros que llevan pedidos y traen platos

Una API bien diseñada actúa como una capa de abstracción que oculta la complejidad del backend.

Códigos de Respuesta HTTP

Números de tres dígitos que indican el resultado de una solicitud HTTP.

Estructura por familias

  • 1xx: Informativo
  • 2xx: Éxito
  • 3xx: Redirección
  • 4xx: Error del cliente
  • 5xx: Error del servidor

Códigos principales

200 OK

La solicitud ha tenido éxito.

400 Bad Request

El servidor no pudo entender la solicitud debido a una sintaxis inválida.

Tu Error

401 Unauthorized

La solicitud requiere autenticación del usuario.

403 Forbidden

El servidor entiende la solicitud pero se niega a autorizarla.

404 Not Found

El servidor no pudo encontrar el recurso solicitado.

500 Internal Server Error

Error inesperado en el servidor.

Error del server

Mejores Prácticas

Documentación clara y completa

Una API sin documentación es como un dispositivo sin manual de instrucciones.

Herramientas: Swagger/OpenAPI, Postman, ReadTheDocs

Versionado de APIs

Los cambios en las APIs son inevitables.

Un buen sistema de versionado: /api/v1/recurso

Autenticación y autorización seguras

Implementar OAuth 2.0, tokens JWT u otros mecanismos seguros.

Nunca transmitir credenciales en texto plano ni en URLs.

Manejo adecuado de errores

Devolver códigos de estado HTTP apropiados junto con mensajes de error descriptivos.

Rate Limiting

Proteger los recursos del servidor limitando el número de solicitudes.

Diseño orientado a recursos

Estructurar las APIs en torno a recursos (sustantivos) y no a acciones (verbos).

Ejemplo

/usuarios

/obtenerUsuarios

Consistencia

Mantener convenciones coherentes en toda la API.

Herramientas

Postman

Postman es una herramienta que permite probar APIs de forma visual y sin necesidad de escribir código.

Hoppscotch

Hoppscotch es una alternativa ligera y de código abierto a Postman.

Comparación Postman vs Hoppscotch

Herramienta Características
Postman Aplicación de escritorio y web, ideal para pruebas avanzadas y automatización.
Hoppscotch Basado en navegador, rápido y ligero, excelente para pruebas rápidas.