Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

REST — Avanzado

10h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • rest

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a desarrolladores y arquitectos de software con experiencia sólida en el diseño de APIs REST que buscan llevar sus habilidades al nivel experto, este curso aborda el diseño y la evaluación de APIs en escenarios de dominio complejo y alta demanda. A lo largo de las sesiones, el participante aplicará las seis restricciones de Fielding con rigor arquitectónico, dominará estrategias avanzadas de caché, versionado y seguridad, automatizará la validación de contratos en pipelines CI/CD y establecerá criterios técnicos fundados para decidir cuándo REST es la solución adecuada frente a alternativas como GraphQL, gRPC o arquitecturas orientadas a eventos, obteniendo al final un conjunto de decisiones de diseño documentadas y justificadas sobre una API lista para producción a escala.

  1. Explicar las seis restricciones de Roy Fielding y los niveles del modelo de madurez Richardson, relacionando cada restricción con criterios concretos de escalabilidad y mantenibilidad.
  2. Identificar violaciones a las restricciones REST, acoplamientos indebidos y oportunidades de mejora en una API existente, documentando el hallazgo con métricas de impacto.
  3. Diseñar la navegación hipermedia de una API de nivel Richardson 3, garantizando que los clientes puedan recorrer el grafo de recursos sin conocimiento previo de las URLs.
  4. Diseñar una estrategia de versionado de API —por URI, cabecera o negociación de contenido— con justificación del trade-off elegido y un plan de deprecación con plazos y comunicación.
  5. Optimizar el rendimiento de una API REST mediante políticas de caché (ETags, Cache-Control, caché distribuida), midiendo la reducción de latencia antes y después con herramientas de benchmarking.
  6. Arquitecturar el modelo de seguridad de una API REST incorporando OAuth 2.0 / OpenID Connect, autorización granular y contramedidas ante el OWASP API Top 10, argumentadas con análisis de superficie de ataque.
  7. Automatizar la validación de contratos mediante pruebas de contrato orientadas al consumidor integradas en un pipeline CI/CD, anticipando rupturas de compatibilidad antes del despliegue.
  8. Anticipar cuellos de botella de escalabilidad bajo carga alta, proponiendo soluciones de rate limiting, throttling y circuit breaking con configuración concreta y justificación de umbrales.
  9. Evaluar cuándo REST es la arquitectura apropiada frente a GraphQL, gRPC y AsyncAPI/eventos, aplicando criterios técnicos medibles: latencia, acoplamiento, tipado, volumen de datos y capacidad del equipo.

Bloque 1 — Arquitectura REST de nivel experto y HATEOAS. El bloque arranca con un análisis riguroso de las seis restricciones de Fielding aplicadas a dominios complejos: statelessness, layered system, uniform interface y code-on-demand se revisan no como lista de verificación, sino como palancas de decisión arquitectónica documentada. Dentro de este marco se diseña la implementación de HATEOAS en una API de nivel de madurez Richardson 3, verificando que los clientes navegan el grafo de recursos —colecciones, acciones de estado, relaciones cruzadas— sin depender de URLs codificadas, y se completa el bloque con la evaluación crítica de una API existente para localizar violaciones, acoplamientos indebidos y oportunidades de mejora cuantificadas con métricas de impacto.

Bloque 2 — Versionado, caché y rendimiento. Se abordan las tres estrategias de versionado canónicas —versionado en URI, versionado por cabecera y negociación de contenido— comparándolas con criterios medibles de acoplamiento cliente-servidor, coste de mantenimiento y legibilidad; el resultado es un plan de versionado con decisión justificada y política de deprecación con plazos y comunicación. A continuación, el foco se desplaza al rendimiento: se diseñan y miden estrategias de caché basadas en ETags y directivas Cache-Control, se incorpora una capa de caché distribuida y se comparan las métricas de latencia antes y después mediante herramientas de benchmarking, cerrando el bloque con patrones de rate limiting, throttling y circuit breaking orientados a prevenir cuellos de botella bajo carga alta.

Bloque 3 — Seguridad avanzada y testing de contratos. La seguridad se aborda como modelo arquitectónico: se define la cadena OAuth 2.0 / OpenID Connect con scopes y claims, se implementa autorización granular por recurso y verbo, y se mapean las contramedidas correspondientes a cada entrada del OWASP API Top 10, argumentando cada decisión con un análisis de superficie de ataque. El bloque concluye con la automatización de la validación de contratos mediante consumer-driven contract testing —herramientas como Pact— integrado en un pipeline CI/CD, de modo que las rupturas de compatibilidad se detecten antes del despliegue y no en producción.

Bloque 4 — REST en el ecosistema de arquitecturas de integración. El curso cierra con una evaluación comparativa rigurosa: REST frente a GraphQL, gRPC y arquitecturas asíncronas basadas en eventos (AsyncAPI). El análisis utiliza criterios técnicos medibles —latencia punto a punto, grado de acoplamiento, capacidad de tipado, volumen y forma de los datos, curva de aprendizaje del equipo— para construir una matriz de decisión que el participante pueda reutilizar en proyectos reales, determinando cuándo REST es la opción óptima y cuándo conviene explorar alternativas.

  • Entorno de desarrollo local con Node.js ≥ 18 o Java 17+ (o el stack acordado por la edición) para ejecutar los proyectos de práctica.
  • Herramienta de benchmarking instalada: k6, wrk o Apache Bench.
  • Acceso a un repositorio Git con capacidad de configurar pipelines CI/CD (GitHub Actions, GitLab CI o equivalente).
  • Framework de contract testing: Pact CLI o biblioteca Pact para el lenguaje del stack elegido.
  • Cliente REST con soporte de colecciones y variables de entorno: Postman, Insomnia o Bruno.
  • Conexión a Internet para acceder a los sandbox de proveedores de identidad (Auth0, Keycloak en Docker o equivalente) utilizados en los ejercicios de seguridad.
  • Dominio práctico del diseño de APIs REST de nivel intermedio: recursos, verbos HTTP, códigos de estado, negociación de contenido y paginación (equivalente al curso RES02).
  • Familiaridad con el modelo de madurez Richardson (niveles 0–2) y los principales patrones de autenticación HTTP.
  • Experiencia básica con herramientas de línea de comandos para invocar APIs (curl, HTTPie o similar) y lectura de especificaciones OpenAPI.
  • Conocimientos fundamentales de sistemas distribuidos: qué es un proxy, una caché HTTP y un balanceador de carga.