Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Curso de nivel avanzado dirigido a desarrolladores y arquitectos de software con experiencia sólida en JSON que necesitan llevar sus competencias al plano de producción y decisiones de diseño a escala. A lo largo de las 8 horas, los participantes aprenderán a modelar dominios complejos mediante JSON Schema modular, a versionar contratos de API con criterios de compatibilidad evolutiva y a integrar la validación automática en pipelines CI/CD. Además, analizarán las dimensiones de rendimiento y seguridad que condicionan el uso de JSON en entornos de alto volumen, contrastándolo con formatos alternativos y aplicando técnicas de optimización de payloads. Al finalizar, cada participante será capaz de tomar y argumentar decisiones de arquitectura fundamentadas en métricas reales, automatizar la generación y verificación de contratos, y diseñar APIs que manejen JSON no confiable con garantías de seguridad y precisión.
$defs, $ref) y los principios de compatibilidad evolutiva de contratos, situándolos en el ciclo de vida de una API pública.Bloque 1 — Modelado modular con JSON Schema avanzado. Este bloque aborda la arquitectura de esquemas complejos mediante los mecanismos de referencia y definición ($defs, $ref). Los participantes construirán un esquema que cubra un dominio real de al menos tres entidades relacionadas, identificando patrones de reutilización y comprobando que el esquema resultante está libre de duplicaciones. Se analizarán también las palabras clave que gobiernan la extensibilidad del contrato (additionalProperties, unevaluatedProperties, deprecated) como base para el trabajo del siguiente bloque.
Bloque 2 — Versionado evolutivo y gestión del ciclo de vida del contrato. Se estudian las estrategias para hacer evolucionar un contrato JSON sin romper a los consumidores existentes, distinguiendo los cambios compatibles hacia atrás de los que exigen negociación de versión. Los participantes diseñarán un plan de versionado para una API pública especificando las reglas de compatibilidad y su reflejo explícito en el esquema, y aprenderán a comunicar deprecaciones de forma controlada.
Bloque 3 — Rendimiento, formatos alternativos y optimización de payloads. Este bloque sitúa JSON en el panorama de formatos de serialización: se comparan MessagePack, Protocol Buffers y CBOR con JSON para casos de uso de alto volumen, usando métricas medidas de tamaño de payload y tiempo de (de)serialización. A continuación, los participantes optimizan un payload de producción aplicando técnicas como eliminación de campos redundantes, compresión, streaming y selección informada de librerías de parsing/validación adecuadas a restricciones de rendimiento y seguridad.
Bloque 4 — Seguridad, precisión numérica y JSON no confiable. Se revisan las vulnerabilidades habituales que aparecen al procesar JSON de origen externo —inyección, DoS por payloads malformados, desbordamientos de profundidad, colisiones de claves— junto con los problemas de representación numérica inherentes al estándar IEEE 754. Los participantes identificarán estos riesgos en un diseño de API de ejemplo y propondrán contramedidas implementadas en código.
Bloque 5 — Automatización del contrato: CI/CD y generación desde la fuente de verdad. El bloque final integra todo lo anterior en el flujo de trabajo de ingeniería. Se configura la validación de esquemas JSON dentro de un pipeline CI/CD de modo que los payloads no conformes bloqueen el merge o el despliegue. Después se aborda la generación automática de JSON Schema a partir de la fuente de verdad del dominio (clases de lenguaje, modelos ORM o especificación OpenAPI), eliminando la necesidad de mantener el esquema manualmente y reduciendo la divergencia entre el código y el contrato.
git, curl o httpie, y un validador JSON Schema CLI (p. ej. ajv-cli, check-jsonschema o similar).type, properties, required, enum, pattern, format, allOf, anyOf, oneOf).