Streaming JSON en OpenAPI 3.2

Descubre cómo OpenAPI 3.2 habilita el streaming de JSON con itemSchema y itemEncoding, usando JSON Lines, NDJSON y Server Sent Events para APIs en tiempo real.

3 sept 2025 • 6 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Los datos en streaming permiten que los servidores de APIs envíen y reciban información en tiempo real o por fragmentos, sin esperar a que toda la respuesta esté lista. Igual que los navegadores procesan HTML, imágenes y multimedia a medida que llegan, ahora también puede hacerse con APIs que trabajan con JSON. Esto acelera respuestas con grandes volúmenes de datos y habilita el envío de eventos del servidor al cliente sin recurrir a polling ni añadir la complejidad de Webhooks o WebSockets, porque el cliente consume pequeños fragmentos de información de forma continua.

El streaming de JSON cobra cada vez más valor a medida que crecen las expectativas en big data, data science e inteligencia artificial. JSON por sí mismo no es fácilmente streamable, pero han surgido estándares y convenciones que lo convierten en un formato apto para transmisión continua, y OpenAPI 3.2 introduce palabras clave para describir estos flujos de datos.

Hacer streaming de JSON puede ser complicado porque el formato no fue pensado para eso. Una aproximación ingenua acumula objetos sin cerrar estructuras, lo que rompe la mayoría de herramientas. En su lugar, formatos como JSON Lines o NDJSON envían un objeto JSON por línea, de modo que cada línea es un JSON válido y se puede procesar con herramientas estándar iterando línea a línea. Otros formatos como JSON Text Sequences o GeoJSON Text Sequence siguen ideas muy similares.

Con OpenAPI 3.0 y 3.1 ya era posible transmitir datos binarios, pero resultaba difícil modelar formatos de streaming JSON porque no había una manera estándar de definir el esquema de cada evento individual del flujo. Muchas personas intentaban describir el stream como si fuera un array, pero un flujo no es un array único sino una secuencia de múltiples objetos, y ese enfoque confunde a las herramientas.

OpenAPI 3.2 resuelve el problema con dos nuevas palabras clave orientadas al streaming: itemSchema para definir la estructura de cada elemento del flujo y itemEncoding para describir cómo se codifica cada elemento, ya sea texto, JSON o binario.

ItemSchema aplica una definición de esquema por elemento, no sobre la respuesta completa. Imagina un endpoint que transmite billetes de tren en tiempo real, cada elemento contendría campos como tren, origen, destino y precio. Declarar itemSchema deja claro para el tooling que la respuesta es un stream y, junto con el tipo de contenido adecuado, indica cómo debe parsearse y mostrarse. Para flujos puramente JSON, itemSchema suele ser suficiente; en formatos más complejos puede ser necesario añadir información de codificación.

ItemEncoding permite especificar la codificación de cada elemento usando el mismo objeto que encoding, pero solo es aplicable a respuestas multipart. Es útil cuando en un mismo flujo se mezclan JSON y binarios como imágenes, aunque para streaming JSON convencional rara vez hace falta. En la mayoría de APIs orientadas a datos y eventos, centrarse en itemSchema será suficiente.

Entre los formatos populares se encuentran JSON Lines, NDJSON, JSON Text Sequences y Server Sent Events. Aunque difieren en ciertos detalles, todos persiguen permitir el envío de datos de forma continua en lugar de una respuesta única y completa.

Con JSON Lines y NDJSON, la práctica es casi idéntica y se siente como trabajar con JSON tradicional, pero con un encabezado distinto y el uso de itemSchema. JSON Lines suele anunciarse con el tipo de contenido application/jsonl y NDJSON con application/x-ndjson. En ambos casos, cada elemento es un objeto JSON seguido por un salto de línea. En documentación es habitual mostrar ejemplos como cadenas multilínea, ya que esa concatenación de objetos separados por líneas no se representa bien como un único JSON o YAML convencional.

Para implementar el envío, basta con serializar cada objeto con JSON y escribir un salto de línea al final de cada uno, manteniendo la conexión abierta mientras el servidor tenga elementos que transmitir. El cliente puede ir leyendo línea a línea y procesando en cuanto llegan, sin esperar a que termine el stream.

JSON Text Sequences añade una particularidad: cada elemento comienza con el carácter de control Record Separator 0x1E, que no es visible en la mayoría de editores pero marca el inicio de cada objeto en el flujo. En estos casos, apoyarse en librerías específicas para generar y consumir la secuencia simplifica la gestión de estos caracteres de control.

Además de transmitir datos, también es común enviar eventos. Server Sent Events es un estándar para actualizaciones en tiempo real desde el servidor al cliente sobre HTTP con el tipo de contenido text/event-stream. Con OpenAPI 3.2 se puede describir un stream SSE usando itemSchema para definir la estructura de campos como event, data y retry. Incluso se puede aplicar polimorfismo con oneOf para tipar cada evento y detallar el formato de sus datos, por ejemplo datos numéricos, cadenas multilínea o JSON con un esquema concreto.

Muchos flujos incluyen eventos centinela, que anuncian el cierre del stream o estados especiales. En OpenAPI esto se resuelve con composición de esquemas estándar como oneOf, anyOf o allOf, combinando el esquema de datos habitual con una variante que represente el marcador de fin o los casos especiales, por ejemplo un evento con data igual a DONE.

Para sacar partido a todo esto en entornos de producción es clave alinear la definición OpenAPI 3.2 con la implementación real de servidor y cliente, validar cada elemento según itemSchema, elegir el tipo de contenido correcto para el formato de streaming y cubrir los casos límite como reconexiones, reintentos, control de backpressure y eventos centinela.

En Q2BSTUDIO impulsamos el diseño e implementación de APIs modernas con OpenAPI 3.2, integrando patrones de streaming para casos de big data, analítica avanzada, agentes IA y productos basados en ia para empresas. Nuestro equipo desarrolla aplicaciones a medida y software a medida con foco en rendimiento, observabilidad y seguridad de extremo a extremo.

Si buscas un partner para diseñar y construir una plataforma preparada para datos en tiempo real, descubre cómo abordamos proyectos de aplicaciones a medida en nuestra página de servicio de desarrollo de software multiplataforma, o conoce cómo aplicamos inteligencia artificial práctica en nuestra unidad de inteligencia artificial con casos de uso de copilotos, automatización con agentes IA y MLOps.

Complementamos estas soluciones con ciberseguridad avanzada y pentesting, servicios cloud aws y azure, y servicios inteligencia de negocio con power bi para orquestar pipelines, gobernanza y visualización de datos. También abordamos automatización de procesos extremo a extremo, desde la captura y validación de datos hasta la publicación de eventos y dashboards operativos, siempre con una arquitectura sostenible y escalable.

En resumen, OpenAPI 3.2 aporta la pieza que faltaba para describir de forma nativa streams de JSON mediante itemSchema e itemEncoding, habilitando especificaciones más precisas, documentación clara y mejores herramientas de validación y pruebas. Es el momento ideal para evolucionar tus APIs hacia modelos orientados a eventos y streaming continuo, reduciendo latencia, mejorando experiencia de usuario y habilitando nuevos escenarios de inteligencia artificial y analítica en tiempo real.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat