Hola Comunidad,
Disfrutad del nuevo vídeo en el canal de YouTube de InterSystems Developers:
La transferencia de estado representacional (REST) es un estilo de arquitectura de software que define un conjunto de restricciones que se utilizarán para crear servicios web. Los servicios web que se ajustan al estilo arquitectónico REST, denominados servicios web RESTful (RWS), proporcionan interoperabilidad entre sistemas informáticos en Internet. Los servicios web RESTful permiten que los sistemas solicitantes accedan y manipulen representaciones textuales de recursos web mediante el uso de un conjunto uniforme y predefinido de operaciones sin estado. Otros tipos de servicios web, como los servicios web SOAP, exponen sus propios conjuntos arbitrarios de operaciones.
Hola Comunidad,
Disfrutad del nuevo vídeo en el canal de YouTube de InterSystems Developers:
Cuando empecé a desarrollar Smart Discharge Navigator, me encontré con un desafío habitual: los datos FHIR se almacenan como paquetes JSON, pero el análisis que necesitaba requería combinar múltiples recursos entre sí, justo el tipo de tarea para la que se diseñó SQL.
FHIR SQL Builder de InterSystems resolvió este problema por completo. En lugar de analizar los paquetes JSON en el código de la aplicación, pude escribir consultas SQL estándar directamente sobre las proyecciones de recursos FHIR dentro de IRIS for Health.
Puede que ya lo haya mencionado antes: creo que las Trazas Visuales, estos diagramas de secuencia con el contenido completo de cada paso, son una característica fantástica de la plataforma de datos IRIS. La información detallada sobre cómo funciona internamente la API, presentada como una traza visual, puede ser muy útil para proyectos en la plataforma IRIS. Por supuesto, esto se aplica cuando no estamos desarrollando una solución de alta carga, ya que en ese caso simplemente no tenemos tiempo para guardar o leer mensajes. Para todos los demás casos, ¡bienvenidos a este tutorial!
En este artículo, pretendo demostrar un par de métodos para añadir fácilmente validación a las APIs REST en InterSystems IRIS Data Platform. Creo que un enfoque specification-first es una idea excelente para el desarrollo de APIs. IRIS ya dispone de funcionalidades para generar un esqueleto de implementación a partir de una especificación y publicar esa especificación para desarrolladores externos (usadlo junto con iris-web-swagger-ui para obtener los mejores resultados). Lo único importante que aún no está implementado en la plataforma es el validador de solicitudes. ¡Vamos a solucionarlo!
Existen numerosas herramientas excelentes para probar vuestras APIs REST, especialmente cuando están en funcionamiento. Postman, distintas extensiones de navegador e incluso código personalizado en ObjectScript usando objetos %Net.HttpRequest pueden hacer el trabajo. Sin embargo, a menudo resulta complicado probar únicamente la API REST sin involucrar, sin querer, el esquema de autenticación, la configuración de la aplicación web o incluso la conectividad de red. Son muchos obstáculos solo para probar el código dentro de vuestra clase dispatch.
La buena noticia es que, si nos tomamos el tiempo para comprender cómo funciona internamente la clase %CSP.REST, encontraremos una alternativa que permite probar únicamente el contenido de la clase dispatch. Podemos configurar los objetos de request y response para invocar los métodos directamente.
Enviáis una petición HTTP y recibís un error HTTP, pero con una página de error HTML que no esperabais… ¿qué está pasando? 🤔
Por ejemplo, puede que hayáis intentado LEER un recurso FHIR (por ejemplo, /Patient/123) y recibáis una página de error 404, aunque con otros IDs de Patient sí obtenéis la carga útil del recurso. Es decir, “la página” definitivamente existe… ¿por qué os está devolviendo una página de error 404? 🙄
Hola comunidad,
¡Buenas noticias para los desarrolladores que acabáis de empezar a trabajar con InterSystems IRIS! Tenemos tutoriales interactivos y prácticos disponibles a través de la plataforma Instruqt. Son perfectos para poneros al día rápidamente, practicar en entornos reales y ganar confianza en el desarrollo con IRIS.
.png)
Como desarrollador que usa IRIS como base de datos en un par de proyectos, uso APIs REST todo el tiempo. En mi opinión, saber cómo consumir un recurso de una API REST es crucial para poder utilizar APIs REST externas con %Net.HttpRequest, porque permite la integración con aplicaciones y servicios web modernos, y es una habilidad esencial para un desarrollador backend que ama y utiliza IRIS como base de datos.
¿Qué es y para quién sirve %Net.HttpRequest?
Es solo una clase, pero es la forma adecuada de hacer solicitudes fuera del framework.
Seguramente queríais usar la especificación OpenAPI (OAS) en formato JSON que utilizasteis para vuestra clase spec en el paquete iris-web-swagger-ui de IRIS.
La OAS generada por el método ##class(%REST.API).GetWebRESTApplication(...) es muy básica, sin descripciones de los parámetros ni de la estructura esperada de las respuestas.
Así que, después de crear vuestra aplicación REST a partir de una OAS, deberíais tener:
application.disp.cls generadaapplication.spec.cls¡Sí sí! ¡Adelante! No os habéis equivocado, estáis en vuestra querida Comunidad de Desarrolladores de InterSystems en español.
Os preguntaréis a qué viene el título de este artículo, pues muy sencillo, hoy estamos aquí reunidos para honrar al Inquisidor y elogiar la gran labor desempeñada por el mismo.
Perfecto, ahora que he captado vuestra atención, es momento de explicar que es el Inquisidor.
Hola a todos,
Este es un rápido consejo de como usar URL en servicios RES API sin distinción de mayúsculas y minúsculas.
Si tienes una clase que extiende de %CSP.REST y Ens.BusinessService, para crear un servicoi REST API, y tienes definido tu WebApplication en minúsculas
.png)
XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
<Route Url="/user" Method="POST" Call="User"/>
<Route Url="/login" Method="POST" Call="Login"/>
</Routes>
}.png)
Buenas a todos,
en capítulos anteriores, vimos como "Proteger los datos: Se un mejor cerrajero", en el que explicábamos como proteger nuestros recursos aplicando un control extra al acceso mediante OAUTH2 que nos ofrece Intersystems. Y como no hay 2 sin 3, aquí tenemos un tercer articulo, en el cual vamos a explicar como "avisar a la policía" de que alguien malicioso está intentando acceder a nuestros datos.
Hola desarrolladores. Solo quería compartir con vosotros un hallazgo que podría ahorraros unos valiosos minutos de vida como desarrolladores con InterSystems IRIS.

¡Como así!
Debería funcionar. Desplegasteis la API REST correctamente y todo está en su lugar.
¿Qué puede estar saliendo mal?
InterSystems IRIS permite crear APIs REST utilizando clases ObjectScript y el framework %CSP.REST. Esta funcionalidad permite desarrollar servicios modernos para exponer datos a aplicaciones web, móviles o integraciones externas.
En este artículo aprenderás cómo crear una API REST básica en InterSystems IRIS, incluyendo:
GET y POSTDemo.ProductoClass Demo.Producto Extends (%Persistent, %JSON.Adaptor) {
Property Nombre As %String;
Property Precio As %Numeric(10,2);
}En el artículo anterior, Generación de Especificaciones OpenAPI, vimos qué es OpenAPI, por qué es útil para documentar los servicios REST y cómo generar un archivo de especificación en formato .yaml o .json. También exploramos cómo IRIS permite crear automáticamente esta documentación a partir del código existente, siguiendo el enfoque code-first.
Pero, ¿qué sucede si partimos del archivo OpenAPI en lugar del código? En otras palabras, ¿si primero definiéramos el comportamiento de nuestra API y luego generáramos las clases necesarias para implementarla en IRIS?
Hola desarrolladores:
Al observar la avalancha de herramientas de desarrollo impulsadas por IA y al estilo vibe coding que han estado apareciendo últimamente casi cada mes, con funciones cada vez más emocionantes, me preguntaba si sería posible aprovecharlas con InterSystems IRIS. Al menos para construir un frontend. Y la respuesta es: ¡sí! Al menos con el enfoque que seguí en este ejemplo.
Aquí tenéis mi receta para crear la interfaz de usuario mediante prompts frente al backend de InterSystems IRIS:
Aquí tenéis el resultado de mi propio experimento: una interfaz 100 % generada por prompts frente a la API REST de IRIS, que permite listar, crear, actualizar y eliminar entradas de una clase persistente (Open Exchange, código del frontend, vídeo).
¿Cómo es la receta en detalle?
Contexto:
Esta guía proporciona una visión general de cómo diseñar e implementar una interfaz API REST para consultar los datos demográficos de un paciente desde un sistema de Registro Electrónico de Pacientes (EPR) utilizando HealthConnect. El proceso implica enviar una solicitud de consulta con el número de identificación del paciente, recuperar la respuesta del sistema EPR, extraer los datos demográficos requeridos del mensaje HL7 y enviarlos como una respuesta JSON al proveedor. El diagrama del proceso de alto nivel se muestra a continuación (Captura de pantalla 1).
En este articulo voy a mostrar como se pueden manipular documentos extensos, es decir de tamaño superior a 3.6 MB en una interfaz REST y con JSON. La interfaz permite:
El articulo cubre los siguientes temas:
Una API REST (Representational State Transfer) es una interfaz que permite que diferentes aplicaciones se comuniquen entre sí a través del protocolo HTTP, utilizando operaciones estándar como GET, POST, PUT y DELETE. Las API REST son ampliamente utilizadas en el desarrollo de software para exponer servicios accesibles por otras aplicaciones, permitiendo la integración entre diferentes sistemas.
Sin embargo, para garantizar que las API sean fáciles de comprender y utilizar, es fundamental contar con una buena documentación. Aquí es donde entra en juego OpenAPI.
Estimada comunidad,
Quería comentarles que hoy publique en OpenExchange un acelerador de APIs muy simple de implementar (con algún parecido a Redis, pero más funcional) y con resultados bastante buenos, a continuación está la publicación del README, espero les sea de ayuda!
https://openexchange.intersystems.com/package/memoria
Esta aplicación permite almacenar el resultado de una llamada a la API GET de forma permanente o por un periodo de tiempo, reduciendo los tiempos de respuesta al cliente final.

La Interfaz de Pasarela de Servidor Web (WSGI, por sus siglas en inglés) es una convención de llamada para que los servidores web puedan reenviar solicitudes a aplicaciones o frameworks web escritos en el lenguaje de programación Python. WSGI es un estándar de Python descrito en detalle en PEP 3333.
🤔 Ok, gran definición, ¿y qué tiene que ver con IRIS?
IRIS 2024.2+ tiene una nueva característica que os permite ejecutar aplicaciones WSGI directamente en IRIS. Esta característica es una excelente manera de integrar IRIS con otros frameworks y bibliotecas de Python.
En vuestra Producción de Interoperabilidad, siempre podíais tener una Business Operation (BO) que fuera un cliente HTTP y que utilizara OAuth 2.0 para la autenticación. Sin embargo, teníais que personalizar la BO para esta metodología de autenticación. Desde la versión 2024.3, que se lanzó recientemente, hay una nueva capacidad que proporciona nuevos ajustes para gestionar esto de forma más sencilla.
Link de Git: https://github.com/ecelg/InterSystems-IRIS-as-a-Spotify-REST-client
Recientemente se me ocurrió una idea: ¿cómo puedo poner mi lista de reproducción en IRIS? 🧐
Al mismo tiempo, me dijeron que debía pagar mi suscripción de Spotify 💸💸... oooh... ¿y si obtengo algunos datos de la API de Spotify? Así que empecé a investigar sobre eso.
Como en la mayoría de los desarrollos, comencemos con la documentación de la API: https://developer.spotify.com/documentation/web-api
🌍 Inclusión e Innovación en la Educación 🌍
Nuestro proyecto reimagina el aprendizaje para todos los estudiantes, con un enfoque en la accesibilidad y experiencias interactivas. Diseñado con el objetivo de hacer que la educación sea atractiva e inclusiva, esta herramienta está creada para apoyar a estudiantes de todas las habilidades en el aprendizaje de material complejo de forma intuitiva.
En este artículo, nos adentraremos en el funcionamiento de una aplicación publicada en OpenExchange llamada db-management-tool que sirve como herramienta de gestión de bases de datos, explorando la arquitectura y las tecnologías que la sustentan. Comprenderemos cómo funciona la aplicación para daros una visión de su diseño, cómo gestiona bases de datos, tablas y cómo la API interactúa con los datos.
Discutiremos las tecnologías principales utilizadas, incluyendo InterSystems IRIS como la base de datos principal y Redis para la caché.
Existen muchas aplicaciones para trabajar con mensajes HL7 V2, pero las herramientas para trabajar con XML en el Portal de Gestión o los IDE de IRIS son limitadas. Aunque hay muchas utilidades externas e IDEs que funcionan con mensajes XML e incluso documentos C-CDA, hay una razón convincente para poder hacer pruebas directamente en el marco de trabajo C-CDA de IRIS.
Hacer pruebas dentro del entorno de IRIS os proporciona el contexto necesario:
Integrar aplicaciones frontend de React con servicios backend como la base de datos IRIS a través de APIs REST puede ser una forma poderosa de construir aplicaciones web robustas. Sin embargo, un obstáculo común que los desarrolladores suelen encontrar es el problema de Cross-Origin Resource Sharing (CORS), que puede impedir que el frontend acceda a los recursos en el backend debido a restricciones de seguridad impuestas por los navegadores web. En este artículo, exploraremos cómo abordar los problemas de CORS al integrar aplicaciones web de React con servicios backend de IRIS.
.png)
- Configurad un servicio HTTP
- Introducid la ruta al servidor FHIR
- Introducid la URL del servicio FHIR
- Usad la credencial añadida previamente
Probad el cliente FHIR
Rastread/seguid el resultado de la prueba
La especificación OpenAPI (OAS) define una interfaz estándar e independiente del lenguaje para las API HTTP que permite tanto a humanos como a ordenadores descubrir y comprender las capacidades del servicio sin acceso al código fuente, la documentación o mediante la inspección del tráfico de red. Cuando se define correctamente, un consumidor puede entender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. Aunque para las API basadas en SOAP existe un asistente especial en InterSystems IRIS que reduce el tiempo de desarrollo de las orquestaciones, no todas las API utilizadas en las integraciones son SOAP. Por eso @Jaime Lerga sugirió añadir un asistente similar al de SOAP para generar un cliente REST a partir de la especificación OpenAPI. La implementación de esta idea reduce el tiempo de desarrollo de las orquestaciones REST API con InterSystems IRIS. Esta idea es una de las más populares en las ideas de InterSystems. Este artículo, el tercero de la serie "Ideas implementadas", se centra en la solución OpenAPI Suite desarrollada por @Lorenzo.Scalese.
🙂 Buenos días comunidad.
Me gustaría compartir con ustedes, en este artículo, una manera muy práctica, de obtener información relevante de todos los Namespaces de un Entorno. ¿Para qué?. Pues por ejemplo para uno de los casos de uso que más nos encontramos los desarrolladores con respecto a Healtshare: el desafío de necesitar crear 1 servicio,