APIs & Microservicios
Curso orientado a diseñar y consumir APIs HTTP con criterio tecnico, y a entender cuando una arquitectura de microservicios aporta valor y cuando solo añade complejidad. El enfoque cubre REST, contratos, versionado, seguridad, resiliencia, mensajeria y observabilidad.
Las APIs conectan aplicaciones, equipos y dominios de negocio. Un diseño pobre genera acoplamientos, integraciones fragiles y problemas de seguridad. Los microservicios, por su parte, no son un fin en si mismos: son una estrategia de particion arquitectonica que exige limites claros, autonomia, operacion distribuida y capacidad de observacion.
El primer modulo es gratuito. Solicita informacion para conocer las condiciones de acceso al curso completo.
Proximamente a la venta. El primer modulo es gratuito: registrate y empieza.
Modulo 01. HTTP, REST y principios de diseño de APIs
Objetivo del modulo
Comprender HTTP como protocolo base de las APIs web y aplicar principios REST para diseñar recursos, operaciones y respuestas con semantica consistente.
Resultados esperados
- Diferenciar metodo HTTP, recurso, endpoint y representacion.
- Elegir codigos de estado adecuados.
- Diseñar rutas RESTful legibles.
- Evitar errores frecuentes de semantica HTTP.
Desarrollo teorico
Toda API HTTP se apoya en el protocolo web. Antes de hablar de frameworks o microservicios hay
que entender que una peticion HTTP tiene metodo, URI, cabeceras, cuerpo y semantica de respuesta.
GET recupera representaciones, POST crea o desencadena procesamiento, PUT reemplaza,
PATCH modifica parcialmente y DELETE elimina. No son simplemente verbos intercambiables; cada
uno comunica intencion al cliente, a caches, proxies, herramientas y equipos humanos.
REST no es "usar JSON con HTTP". Es un estilo arquitectonico que enfatiza recursos identificables
por URI, operaciones uniformes, ausencia de estado de sesion en el servidor para cada peticion y
uso correcto del protocolo subyacente. En diseño cotidiano, esto suele traducirse a modelar bien
los recursos: /users, /orders/123, /tickets/ABC-1/comments. Un anti-patron comun es usar
rutas basadas en acciones para todo, como /createUser o /deleteServer, desperdiciando la
semantica de HTTP.
Los codigos de estado tambien importan. 200 OK indica exito general; 201 Created es adecuado
tras crear un recurso; 204 No Content encaja cuando la operacion fue correcta pero no devuelve
cuerpo; 400 Bad Request refleja entrada invalida; 401 Unauthorized indica falta de
autenticacion valida; 403 Forbidden significa que el cliente esta autenticado pero no tiene
permiso; 404 Not Found expresa ausencia del recurso; 409 Conflict es util para colisiones de
estado; 500 y familia indican problemas del lado servidor.
| Metodo | Uso principal | Idempotencia | Ejemplo |
|---|---|---|---|
| GET | leer recurso | si | obtener ticket |
| POST | crear o ejecutar operacion | no necesariamente | crear pedido |
| PUT | reemplazo completo | si | actualizar perfil completo |
| PATCH | cambio parcial | depende del diseño | cambiar estado |
| DELETE | eliminar | idealmente si | borrar recurso |
Diseñar bien una API significa tambien pensar en paginacion, filtrado, ordenacion y estructura de
errores. Si /tickets puede devolver miles de elementos, necesita page, limit, cursores u
otro mecanismo. Si la respuesta de error cambia en cada endpoint, el consumidor sufrira. Una API
profesional debe ser predecible tanto en el camino feliz como cuando algo sale mal.
Ejemplo practico de API REST
Un diseño RESTful para un sistema de tickets ilustra las decisiones habituales:
# Listar tickets con filtros y paginacion
GET /api/v1/tickets?status=open&priority=high&page=1&limit=20
Accept: application/json
Authorization: Bearer eyJhbGci...
HTTP/1.1 200 OK
Content-Type: application/json
{
"data": [
{
"id": "TK-1042",
"title": "Error en SSO corporativo",
"status": "open",
"priority": "high",
"assignee": null,
"createdAt": "2026-03-15T10:30:00Z"
}
],
"total": 87,
"page": 1,
"pageSize": 20
}
# Crear un ticket
POST /api/v1/tickets
Content-Type: application/json
Authorization: Bearer eyJhbGci...
{
"title": "VPN no conecta desde la oficina de Madrid",
"description": "Desde esta mañana varios usuarios reportan timeout al conectar la VPN.",
"priority": "high"
}
HTTP/1.1 201 Created
Location: /api/v1/tickets/TK-1043
Content-Type: application/json
{
"data": {
"id": "TK-1043",
"title": "VPN no conecta desde la oficina de Madrid",
"status": "open",
"priority": "high",
"createdAt": "2026-03-27T09:15:00Z"
}
}
# Cambiar estado parcialmente
PATCH /api/v1/tickets/TK-1043
Content-Type: application/json
{ "status": "in_progress", "assignedTo": "agent-007" }
HTTP/1.1 200 OK
# Eliminar un ticket
DELETE /api/v1/tickets/TK-1043
HTTP/1.1 204 No Content
Estructura de errores consistente
Una API profesional devuelve errores con formato predecible. El consumidor no deberia adivinar donde esta el mensaje de error:
{
"error": {
"code": "VALIDATION_ERROR",
"message": "Datos de entrada invalidos",
"details": {
"title": "Debe tener al menos 5 caracteres",
"priority": "Valor no permitido. Opciones: low, medium, high, critical"
},
"requestId": "req-abc123"
}
}
Paginacion con cursores frente a offset
La paginacion por offset (page=3&limit=20) es simple pero se degrada en tablas grandes. La
paginacion por cursor es mas eficiente porque no necesita contar filas anteriores:
# Paginacion por cursor
GET /api/v1/tickets?limit=20&after=TK-1040
{
"data": [...],
"pagination": {
"hasNext": true,
"nextCursor": "TK-1060"
}
}
El cursor suele ser el ID o timestamp del ultimo elemento. Es mas resistente a inserciones concurrentes que el offset, porque no se desplazan posiciones cuando se añaden nuevos registros.
Contenido ampliado
- Cabeceras comunes como
Content-Type,AcceptyAuthorization. - Idempotencia y seguridad de metodos.
- Colecciones, subrecursos y acciones excepcionales.
Puntos clave
- HTTP no es solo transporte; aporta semantica.
- REST se apoya en recursos coherentes y operaciones uniformes.
- Los codigos de estado comunican resultado funcional y tecnico.
- Una API buena es predecible y consistente.
Checklist operativa
- Verificar que cada ruta modela un recurso real.
- Elegir metodo HTTP segun la intencion.
- Devolver codigos de estado alineados con el resultado.
- Diseñar respuestas de error consistentes.
Errores frecuentes
- Usar
POSTpara cualquier operacion. - Diseñar rutas basadas solo en verbos.
- Responder
200incluso cuando hay error funcional. - Ignorar paginacion en colecciones grandes.
Practica sugerida
Diseña una API de tickets con endpoints de listado, detalle, creacion, cambio de estado y comentarios, indicando metodos y codigos de estado esperados.
Preguntas de autoevaluacion
- Por que
201 Createdno equivale a200 OK. - Cuando tiene sentido
PATCHfrente aPUT. - Que problema resuelve modelar recursos y no acciones arbitrarias.
Cierre
Una API madura empieza por respetar el protocolo que la sostiene; por eso HTTP y REST son la base de todo el curso.
Definir contratos estables entre proveedor y consumidor de API y aprender a evolucionarlos sin romper integraciones existentes.
Que aprenderas
- Explicar que es un contrato de API.
- Diseñar payloads y esquemas coherentes.
- Aplicar estrategias basicas de versionado.
- Entender compatibilidad hacia atras.
Contenido del modulo
- Especificacion OpenAPI
- Cambios compatibles frente a breaking changes
- Estrategias de versionado
- Deprecacion y comunicacion
Adquiere el curso para acceder al contenido completo de este modulo.
Proteger APIs distinguiendo identidad, permisos, validacion de entrada y controles de seguridad operativos.
Que aprenderas
- Diferenciar autenticacion y autorizacion.
- Reconocer usos comunes de API keys, sesiones, JWT y OAuth 2.0.
- Entender riesgos habituales en APIs.
- Aplicar validacion y controles basicos de seguridad.
Contenido del modulo
- Estructura de un JWT
- Flujo OAuth 2.0 Authorization Code
- BOLA: Broken Object Level Authorization
- Rate limiting
- API keys para integraciones servidor a servidor
Adquiere el curso para acceder al contenido completo de este modulo.
Entender que problema resuelven los microservicios, como se definen sus limites y por que una particion incorrecta genera sistemas distribuidos mas frágiles que un monolito modular.
Que aprenderas
- Explicar que es un microservicio y que no lo es.
- Identificar bounded contexts y responsabilidades.
- Comparar microservicios frente a monolito modular.
- Detectar particiones artificiales o acoplamientos ocultos.
Contenido del modulo
- Bounded context: del dominio al servicio
- Monolito modular como alternativa
- Señales de mala particion
- Costes de la distribucion
Adquiere el curso para acceder al contenido completo de este modulo.
Comprender como se comunican servicios distribuidos cuando no todo puede resolverse con llamadas sincronas, y que patrones ayudan a resistir fallos sin perder control del sistema.
Que aprenderas
- Diferenciar comunicacion sincrona y asincrona.
- Explicar reintentos, timeouts, circuit breaker e idempotencia.
- Entender consistencia eventual.
- Reconocer el papel de colas y brokers de mensajes.
Contenido del modulo
- Publicar y consumir mensajes
- Consumidores idempotentes
- Circuit breaker
- Reintentos con backoff exponencial
Adquiere el curso para acceder al contenido completo de este modulo.
Entender como operar APIs y microservicios en produccion mediante logs, metricas, trazas y correlacion de eventos.
Que aprenderas
- Explicar la diferencia entre logs, metricas y trazas.
- Entender por que la observabilidad es critica en sistemas distribuidos.
- Introducir nociones de SLI, SLO y alertado basico.
- Diseñar una base operativa para diagnostico y seguimiento.
Contenido del modulo
- Logs estructurados en JSON
- Propagacion de correlation ID entre servicios
- Metricas con las cuatro senales doradas
- SLI y SLO
- Alertas accionables
Adquiere el curso para acceder al contenido completo de este modulo.
Integrar los conceptos del curso en un diseño de API y servicios que incluya recursos, seguridad, versionado, flujos distribuidos y criterios operativos.
Que aprenderas
- Diseñar una API con endpoints, contratos y errores definidos.
- Dibujar limites de servicios y dependencias.
- Identificar riesgos de seguridad y resiliencia.
- Traducir requisitos de negocio a decisiones tecnicas razonadas.
Contenido del modulo
- Mapa de servicios de la plataforma
- Especificacion de la API del Ticket Service
- Decision records
- ADR-001: Monolito modular en fase inicial
- Contexto
- Decision
- Consecuencias
- ADR-002: Notificaciones por cola de mensajes
- Contexto
- Decision
- Consecuencias
- Checklist del proyecto final
Adquiere el curso para acceder al contenido completo de este modulo.
El primer modulo es gratuito. Adquiere el curso para acceder a los 6 modulos restantes, el examen y el certificado.
Crear cuenta gratisResultados de aprendizaje
- Explicar HTTP, REST y operaciones CRUD con precision.
- Diseñar rutas, recursos y contratos de API mantenibles.
- Aplicar autenticacion, autorizacion y controles de seguridad basicos.
- Entender limites de dominio y responsabilidades en microservicios.
- Comparar sincronia, mensajeria y patrones de resiliencia.
- Operar servicios distribuidos con logs, metricas y trazas.
Publico objetivo
- Desarrolladores junior o intermedios que trabajan con integraciones. - Perfiles backend, plataforma o arquitectura que necesiten una base ordenada. - Profesionales que consumen APIs y quieren entender mejor como se diseñan.
Requisitos previos
- Conocer fundamentos de programacion y manejo de HTTP a nivel basico. - Haber trabajado o al menos practicado con JavaScript, Python u otro lenguaje de backend. - Interes por integracion, backend y arquitectura de servicios.
Examen disponible
Este curso incluye un examen de 20 preguntas. El examen y el certificado forman parte del acceso completo.
Crear cuenta gratis