2 Seguidores · 119 Publicaciones

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.

Artículo Luis Angel Pérez Ramos · dic 5, 2023 3m read

¡Bienvenidos a todos! 

En este breve artículo quería presentar un ejemplo de uso que seguramente a muchos de los que trabajéis con IRIS como backend de vuestras aplicaciones web os hayáis encontrado en más de una ocasión y sería el de la necesidad de enviar desde el frontend un archivo a vuestro servidor.

0
1 272
Artículo Ricardo Paiva · nov 2, 2023 2m read

Preguntas Frecuentes de InterSystems

El significado de cada valor de tiempo de espera es el siguiente.

1. [Tiempo de espera de respuesta del servidor]

Si el procesamiento de IRIS/Caché (ejecución de rutina o consulta) no finaliza dentro de este tiempo establecido, el navegador devolverá un error.

Por ejemplo, si este valor es 60 segundos y se necesitan 90 segundos para ejecutar una rutina/método/consulta, se producirá un error.

0
0 141
Artículo Ricardo Paiva · ago 17, 2023 5m read

FHIR ha revolucionado la industria de la atención médica al proporcionar un modelo de datos estandarizado para crear aplicaciones y promocionar el intercambio de datos entre diferentes sistemas. El estándar FHIR se basa en enfoques modernos impulsados por APIs, lo que lo hace más accesible para los desarrolladores web y móviles. Sin embargo, interactuar con las API de FHIR aún puede ser un desafío, especialmente cuando se trata de consultar datos usando lenguaje natural.

0
0 233
Artículo Ricardo Paiva · jul 19, 2023 10m read

En la primera parte de esta serie de artículos hablamos sobre cómo leer un gran fragmento de datos del cuerpo sin procesar de un método HTTP POST y guardarlo en una base de datos como una propiedad stream de una clase. En la segunda parte comentamos cómo enviar archivos y sus nombres envueltos en un formato JSON. 

Ahora analizaremos más de cerca la idea de enviar al servidor grandes archivos por partes. Para ello, podemos utilizar varios enfoques. En este artículo se analiza el uso del encabezado Transfer-Encoding para indicar una transferencia fragmentada. La especificación HTTP/1.1 introdujo el encabezado Transfer-Encoding, y la sección 4.1 RFC 7230 lo describió, pero está ausente en la especificación HTTP/2. 

0
0 260
Artículo Ricardo Paiva · jul 11, 2023 5m read

¡Hola Comunidad!

Seguramente habéis tod@s escuchado algo sobre Salesforce – la empresa y su software. En este articulo nos dedicaremos a la conectividad al software de CRM – Salesforce CRM. De una manera muy genérica, Salesforce CRM tiene la capacidad de administrar las interacciones con los clientes de una organización a través de varios métodos, como llamadas telefónicas, consultas por correo electrónico, comunidades, medios y redes sociales. Se dice que Salesforce maneja todas las relaciones con los clientes - centrándose en los procesos de ventas, soporte y marketing. Este servicio/software está disponible en la nube.

Qué bueno sería que pudiésemos conectarnos a Salesforce desde nuestro entorno InterSystems IRIS o cualquier otro producto de InterSystems.

0
0 695
Artículo Daniel Aguilar · jul 3, 2023 2m read

Hola Comunidad!

Voy a explicaros por encima cómo crear test en colecciones de Postman para usarlos en la app IRIS Api Tester.

Ok, pero.. ¿qué es Newman?

Newman es una herramienta de línea de comandos que nos permite ejecutar colecciones de Postman de un modo automático y escalable. Creando test en Newman, puedes asegurar la estabilidad de las colecciones en tus API endpoints. En este artículo, vamos a descubrir como crear test para Newman desde Postman, con unos ejemplos prácticos.

1
0 463
Artículo Daniel Aguilar · jul 3, 2023 3m read

Hola Comunidad!!

Acabo de subir mi última aplicación "IRIS Api Tester" al Open Exchange.

Es un proyecto docker con InterSystems IRIS + Newman que permite lanzar test sobre tus colecciones de Postman de una manera rápida y fácil.

El proyecto viene listo para funcionar, solo debes clonar el repositorio: https://github.com/daniel-aguilar-garcia/irisapitester

Arrancar el fichero docker-compose:

Abrir esta url en tu navegador:

1
0 229
Artículo Bernardo Linarez · mar 30, 2020 6m read

¡Hola Comunidad!

En este artículo hablaré sobre las pruebas y la depuración de las aplicaciones web de Caché (principalmente REST) con herramientas externas. La segunda parte trata sobre las herramientas de Caché.

Usted escribió el código del lado del servidor y quiere probarlo con un cliente, o ya tiene una aplicación web pero no funciona. Aquí es donde entra la depuración. En este artículo abarcaré desde las herramientas más fáciles de utilizar (el navegador), hasta las más completas (el analizador de paquetes), pero primero conversemos un poco sobre los errores más comunes y cómo pueden resolverse.

1
0 694
Artículo Daniel Aguilar · feb 13, 2023 6m read

Hola! recientemente tuve que aplicar validación api-key a un desarrollo que teníamos hecho con un montón de endpoints y me he decidido a compartir con vosotros como lo llevé a cabo de una forma centralizada.

En este artículo os voy a explicar como podemos aplicar de una forma genérica (o no) validación api key a todos los endpoints de nuestra Web App.

Para el desarrollo utilicé la clase Base.cls de la plantilla iris-rest-api-template

La cual modifiqué un poco para que se adaptase a lo que necesitaba. La idea es que en vuestros desarrollos copiéis la clase Base.

5
0 617
Artículo Ramón Rodríguez · feb 26, 2023 6m read

Buenas desarrollador!

En este artículo te voy a contar mi experiencia y conocimientos en el poco tiempo que llevo utilizando los distintos productos de InterSystems.

A parte de contar mis vivencias también veremos como hacer una pequeña API Rest con la que poder hacer un CRUD con la base de datos SQL de InterSystems.

Mi historia:

Me presento. Soy Ramón, tengo 23 años y acabo de comenzar mi carrera profesional.

2
0 226
Artículo Jaime Lerga · feb 22, 2023 3m read

Hace unos días, publique una pregunta respecto a este tema pero la respuesta era algo mas compleja de lo que esperaba, así que para futura referencia de otras personas que tengan la misma duda he preferido documentar el proceso en un articulo. 
La premisa era la siguiente, hemos comenzado a utilizar el paquete Restforms2 para tener una api CRUD que nos permita almacenar y consultar datos en la base de datos de IRIS. Pero esto no nos permite hacer todo lo que necesitamos, ni aun empleando custom querys. Por lo tanto necesitábamos emplear métodos personalizados implementados en una integración.

3
1 399
Artículo Daniel Aguilar · feb 5, 2023 2m read

Hola Comunidad!

Quiero compartir con vosotros mi primera aplicación del Open Exchange.

Es una herramienta para hacernos los desarrollos mas fáciles. Es un microservicio con IRIS en un docker que nos ayuda en los desarrollos de campañas de SMS, Mail y en los links para las tiendas de nuestras apps brindándonos un acortador de Url's.

Es muy fácil de usar.

Simplemente clona este repo:

https://github.com/daniel-aguilar-garcia/cos-url-shortener.git

Abre la carpeta en VSCode y arranca el docker:

Después de esto, podrás crear versiones cortas de cualquier link via petición http.

2
0 254
Artículo Alberto Fuentes · mayo 6, 2021 4m read

¡Hola desarrolladores!

Supón que tienes una clase persistente con datos y quieres tener una interfaz de usuario Angular sencilla, para ver los datos y llevar a cabo operaciones CRUD.

En este artículo describíamos cómo desarrollar una interfaz de usuario Angular para InterSystems IRIS utilizando RESTForms2.

A continuación vamos a explicar cómo conseguir una interfaz de usuario Angular sencilla que permita realizar operaciones CRUD y ver automáticamente los datos de tu clase de InterSystems IRIS en menos de 5 minutos.

¡Vamos!

1
0 350
Artículo Luis Angel Pérez Ramos · dic 14, 2022 2m read

En este artículo, mostraré cómo subir y descargar archivos vía http desde los productos de InterSystems.

A menudo desde la comunidad surgen preguntas sobre como trabajar con archivos a través de http y normalmente os emplazamos a revisar el proyecto FileServer, que muestra la subida/descarga de archivos. Pero me gustaría hablar un poco más de cómo podemos enviar y recibir archivos desde los productos de InterSystems.

1
0 1070
Artículo Ricardo Paiva · dic 12, 2022 4m read

@José.Pereiray yo hemos creado un proyecto del que queremos hablar en este artículo.

¿Qué es IRIS RAD Studio?

IRIS RAD Studio es nuestra idea de una solución low-code para hacer más fácil la vida del desarrollador.

¿Por qué?

¿Y por qué no? Las aplicaciones low-code se han hecho muy populares últimamente. La imagen de abajo muestra el "Cuadrante mágico" ofrecido por la consultora Gartner para plataformas de aplicaciones low-code empresariales, y que muestra lo interesante que es este mercado.

0
0 178
Artículo Alberto Fuentes · jun 15, 2022 2m read

¡Hola desarrolladores! Quería compartir hoy un ejemplo muy interesante por parte de Tani Frankel. Se trata de una aplicación sencilla sobre la utilidad SystemPerfomance.

Repasando nuestra documentación sobre la rutina de monitorización ^SystemPerformance (conocida como ^pButtons en versiones anteriores a IRIS), un cliente me dijo «Entiendo todo esto pero ojalá fuese más simple, más sencillo para definir perfiles y gestionarlos, etc.».

Entonces pensé que sería interesante como ejercicio facilitar una pequeña interfaz para hacer esas tareas más sencillas.

El primer paso era envolver en una API basada en clases la rutina actual de ^SystemPerformance.

1
0 571
Artículo Alberto Fuentes · abr 15, 2021 4m read

Hola a todos! Comentamos hoy una entrada de Timothy Leavitt cuyo equipo (Application Services en InterSystems - encargado de desarrollar y mantener muchas de nuestras aplicaciones internas, y proporcionar herramientas y prácticas recomendadas a otras aplicaciones departamentales), durante el último año, se embarcó en un viaje hacia el desarrollo de interfaces de usuario basadas en Angular/REST, para las aplicaciones existentes construidas originalmente con CSP y/o Zen.

2
0 235
Artículo Muhammad Waseem · ago 8, 2022 3m read

La aplicación Carbon Footprint Counter utiliza el GHG Protocol para medir las emisiones de carbono en las empresas. El Protocolo de Gases de Efecto Invernadero (GHG Protocol) establece marcos estandarizados globales integrales para medir y gestionar las emisiones de gases de efecto invernadero (GHG) de las operaciones del sector público y privado, las cadenas de valor y las acciones de mitigación.

Sobre la base de una asociación de 20 años entre el Instituto de Recursos Mundiales (WRI) y el Consejo Empresarial Mundial para el Desarrollo Sostenible (WBCSD), el GHG Protocol trabaja con gobiernos, asociaciones industriales, ONGs, empresas y otras organizaciones. (fuente: https://ghgprotocol.org/about-us).

La aplicación Carbon Footprint Counter utiliza InterSystems IRIS para implementar APIs REST y la base de datos SQL para administrar el inventario de emisiones de carbono en las empresas. La interfaz es Angular 12 con el framework PrimeNG (líder de código abierto para Angular).

0
0 255
Artículo Muhammad Waseem · ago 1, 2022 1m read

Mientras pensaba en lo que podría desarrollar para el Concurso Full Stack de InterSystems, vi esta pregunta:
https://community.intersystems.com/post/how-access-production-items-through-objectscript

Desarrollé ProductionManager.csp. Muestra elementos en la producción activa. También muestra la Clase en uso y la fecha y hora del último mensaje. Creo que estos puntos de datos pueden ayudar a tomar decisiones sobre qué elementos eliminar de la producción.

0
0 107
Artículo Alberto Fuentes · mayo 25, 2021 12m read

En este artículo, me gustaría hablar sobre el enfoque spec-first para el desarrollo de una API REST.

Mientras que el desarrollo tradicional code-first de una API REST es así:

  • Escribir el código
  • Habilitarlo en REST
  • Documentarlo (como una API REST)

Spec-first sigue los mismos pasos, pero a la inversa. Comenzamos con una especificación, — que también actúa como documentación — , generamos el código base de la aplicación REST a partir de ella, y finalmente escribimos la lógica de negocio concreta que nos haga falta.

Esto ofrece varias ventajas:

1
0 1027
Artículo Nancy Martínez · jul 22, 2022 1m read

¡Hola desarrolladores!

Solo quiero compartir con vosotros mi conocimiento, es decir, experiencia en algo que os puede hacer ahorrar unas cuantas horas algún día. 

Si estás creando una REST API con IRIS que contiene más de un nivel de "/", por ejemplo: '/patients/all',  no te olvides de añadir el parámetro 'recurse=1' en tu script de despliegue en %Installer. Si no, todas las entradas de nivel secundario y de mayor profundidad no funcionarán. Y todas las entradas de nivel primario funcionarán.

/patients

- funcionará, pero

/patients/all

- no funcionará.

Este es un ejemplo de sección CSPApplication que arregla el problema y que puede que quieras usar en tu clase %Installer:

0
0 177
Artículo Alberto Fuentes · jun 29, 2022 2m read

¡Hola Comunidad!

Me gustaría anunciaros brevemente tres nuevos paquetes, disponibles en Open Exchange / a través de ZPM, que pueden realmente ayudaros a acelerar el desarrollo en IRIS de aplicaciones full-stack modernas. Todo esto se anunció la semana pasada en una sesión del Global Summit, pero muchos no pudisteis asistir. Además, me acabo de enterar de que justo ahora está en marcha un concurso de desarrollo de aplicaciones full-stack!

En el corazón de todo esto está isc.rest

0
0 179
Artículo Muhammad Waseem · jun 6, 2022 3m read

¡Hola Comunidad!

Este artículo muestra cómo crear Pacientes y Recursos de Observación de Pacientes mediante el uso de la aplicación iris-fhir-client.
image

Recomiendo leer mi primer artículo sobre esta aplicación y ver el vídeo de Youtube antes de continuar.

¡Empezamos!

0
0 205
Artículo Muhammad Waseem · jun 1, 2022 3m read

¡Hola comunidad!

Esta publicación es una introducción a mi aplicación iris-fhir-client en Open Exchange.

Usando Python embebido y con la ayuda de la librería fhirpy, iris-fhir-client puede conectarse a cualquier servidor FHIR abierto.
Obten información de recursos por terminal y mediante el uso de la aplicación web CSP.

0
0 330
Artículo Ricardo Paiva · mar 24, 2022 9m read

Este artículo es una continuación de esta publicación.

En ese artículo, analizamos el desarrollo de business processes, que forman parte de los componentes necesarios para la integración del sistema y sirven como coordinadores de la producción.

En este artículo mostraremos la creación de un business service, que es la ventana de entrada de información para la producción.

Y, finalmente, llegamos al último artículo de "¡Utilicemos la interoperabilidad!

0
0 259
Artículo Eduardo Anglada · feb 14, 2022 2m read

Subir un fichero a IRIS empleando la API REST es sencillo. Primero, usando un cliente Postman, enviamos el fichero:

P.S.: Vemos que es un "form" de tipo "multipart" con el nombre "file". Todo esto lo aprendemos viendo la petición http:

POST /image-analyzer/postFile HTTP/1.1
Host: localhost:52773
Content-Length: 213
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="file"; filename="/C:/Users/yurim/OneDrive/Imagens/salesschema.png"
Content-Type: image/png

(data)
----WebKitFormBoundary7MA4YWxkTrZu0gW
0
0 281
Artículo Alberto Fuentes · feb 7, 2022 1m read

Si tu API REST necesita retornar un fichero para que el cliente lo descargue, puedes utilizar lo siguiente (extraído de la pregunta https://community.intersystems.com/post/download-file-rest y sus respuestas):

Set %response.ContentType = "image/jpeg"
Do %response.SetHeader("Content-Disposition","attachment;filename=""test.jpg""")
Set %response.NoCharSetConvert=1
Set %response.Headers("Access-Control-Allow-Origin")="*"
 
Set stream=##class(%Stream.FileBinary).%New()
Set sc=stream.LinkToFile("/opt/irisbuild/output/test.jpg")
Do stream.OutputToDevice()
 
Set tSC=$$$OK
0
0 885
Artículo Jose-Tomas Salvador · dic 29, 2021 1m read

Para aquellos a los que, en un momento dado, necesitan probar cómo va eso del ECP para escalabilidad horizontal (cómputo y/o concurrencia de usuarios y procesos), pero les da pereza o no tienen tiempo de montar el entorno, configurar los nodos, etc..., acabo de publicar en Open Exchange la aplicación/ejemplo OPNEx-ECP Deployment .

0
0 266
Artículo Muhammad Waseem · dic 22, 2021 3m read

La interoperabilidad en la asistencia sanitaria es esencial para mejorar la atención a los pacientes, reducir los costes de los proveedores de atención médica y ofrecer una imagen más precisa a los proveedores. Pero con tantos sistemas diferentes, los datos se presentan en diferentes formatos. Se han creado muchos estándares para tratar de resolver este problema, incluyendo HL7v2, HL7v3 y CDA, pero cada una tiene sus limitaciones.

FHIR, o Fast Healthcare Interoperability Resources, es un estándar para el intercambio de datos de salud, que tiene como objetivo resolver estos problemas.

0
1 988
Artículo Ricardo Paiva · nov 29, 2021 14m read

En la primera parte de esta serie de artículos, hablamos sobre cómo leer un fragmento "grande" de datos del contenido sin procesar de un método HTTP POST y guardarlo en una base de datos como una propiedad de flujo de una clase. Ahora veremos cómo guardar esos datos y metadatos en formato JSON.

Desafortunadamente, Advanced REST Client no permite configurar objetos JSON con datos binarios como valor de una clave (o quizá simplemente no he descubierto cómo hacerlo), así que decidí escribir un cliente simple en ObjectScript para enviar datos al servidor.

Creé una nueva clase llamada RestTransfer.Client y le añadí los parámetros Server = "localhost" y Port = 52773 para describir mi servidor web. Y creé un método de clases GetLink en el que creo una nueva instancia de la clase %Net.HttpRequest y establezco sus propiedades con los parámetros mencionados anteriormente. 

0
0 1128