En este módulo, aprenderemos cómo MUMPS puede interactuar con APIs y servicios web. Este conocimiento es crucial para integrar aplicaciones MUMPS con otros sistemas y servicios modernos.

Objetivos del Módulo

  • Comprender qué son las APIs y los servicios web.
  • Aprender a consumir APIs desde MUMPS.
  • Desarrollar y exponer servicios web utilizando MUMPS.

¿Qué son las APIs y los Servicios Web?

APIs (Application Programming Interfaces)

Las APIs son conjuntos de definiciones y protocolos que permiten que diferentes aplicaciones se comuniquen entre sí. Proveen una forma estandarizada de interactuar con una aplicación o servicio.

Servicios Web

Los servicios web son un tipo de API que se accede a través de la web utilizando protocolos como HTTP/HTTPS. Los servicios web pueden ser de dos tipos principales:

  • SOAP (Simple Object Access Protocol): Un protocolo basado en XML.
  • REST (Representational State Transfer): Un estilo arquitectónico que utiliza HTTP y es más ligero que SOAP.

Consumir APIs desde MUMPS

Paso 1: Configuración del Entorno

Para consumir APIs desde MUMPS, necesitamos asegurarnos de que nuestro entorno tenga acceso a herramientas de red como curl o bibliotecas específicas para HTTP.

Paso 2: Realizar una Solicitud HTTP

A continuación, se muestra un ejemplo de cómo realizar una solicitud HTTP GET a una API REST utilizando curl desde MUMPS.

GETAPI
    ; Definir la URL de la API
    SET url="https://api.example.com/data"
    
    ; Ejecutar el comando curl y capturar la salida
    SET command="curl -s "_url
    OPEN "pipe":(command:readonly)::"pipe"
    USE "pipe" READ response
    CLOSE "pipe"
    
    ; Mostrar la respuesta
    WRITE "Response: ", response, !
    QUIT

Explicación del Código

  1. Definir la URL de la API: La variable url contiene la dirección de la API a la que queremos acceder.
  2. Ejecutar el comando curl: Utilizamos el comando curl para realizar la solicitud HTTP GET. La opción -s hace que curl funcione en modo silencioso.
  3. Capturar la salida: Abrimos un canal de comunicación (pipe) para ejecutar el comando y leer la respuesta.
  4. Mostrar la respuesta: Imprimimos la respuesta de la API.

Ejercicio Práctico

Ejercicio: Modifica el ejemplo anterior para realizar una solicitud HTTP POST enviando datos en formato JSON.

Solución:

POSTAPI
    ; Definir la URL de la API y los datos a enviar
    SET url="https://api.example.com/data"
    SET jsonData="{""key1"":""value1"",""key2"":""value2""}"
    
    ; Ejecutar el comando curl con la opción -X POST y -d para datos
    SET command="curl -s -X POST -H ""Content-Type: application/json"" -d '"_jsonData_"' "_url
    OPEN "pipe":(command:readonly)::"pipe"
    USE "pipe" READ response
    CLOSE "pipe"
    
    ; Mostrar la respuesta
    WRITE "Response: ", response, !
    QUIT

Desarrollar y Exponer Servicios Web en MUMPS

Paso 1: Configuración del Servidor Web

Para exponer servicios web, necesitamos un servidor web que pueda ejecutar scripts MUMPS. Podemos utilizar servidores como Apache con módulos CGI.

Paso 2: Crear un Servicio Web Simple

A continuación, se muestra un ejemplo de un servicio web simple que devuelve un mensaje en formato JSON.

WEBAPI
    ; Configurar la cabecera HTTP
    WRITE "Content-Type: application/json", !
    WRITE "Access-Control-Allow-Origin: *", !
    WRITE !
    
    ; Generar la respuesta JSON
    SET response="{""message"":""Hello, World!""}"
    
    ; Enviar la respuesta
    WRITE response, !
    QUIT

Explicación del Código

  1. Configurar la cabecera HTTP: Especificamos el tipo de contenido como application/json y permitimos el acceso desde cualquier origen.
  2. Generar la respuesta JSON: Creamos una cadena JSON con el mensaje de respuesta.
  3. Enviar la respuesta: Imprimimos la respuesta JSON.

Ejercicio Práctico

Ejercicio: Modifica el ejemplo anterior para aceptar un parámetro de consulta (name) y devolver un mensaje personalizado.

Solución:

WEBAPI
    ; Configurar la cabecera HTTP
    WRITE "Content-Type: application/json", !
    WRITE "Access-Control-Allow-Origin: *", !
    WRITE !
    
    ; Leer el parámetro de consulta
    NEW name
    SET name=$GET(%QUERY("name"), "World")
    
    ; Generar la respuesta JSON
    SET response="{""message"":""Hello, "_name_""""
    
    ; Enviar la respuesta
    WRITE response, !
    QUIT

Conclusión

En este módulo, hemos aprendido los conceptos básicos de las APIs y los servicios web, cómo consumir APIs desde MUMPS y cómo desarrollar y exponer servicios web utilizando MUMPS. Estos conocimientos son fundamentales para integrar aplicaciones MUMPS con otros sistemas y servicios modernos.

Resumen

  • APIs y Servicios Web: Definiciones y tipos.
  • Consumir APIs: Uso de curl para realizar solicitudes HTTP.
  • Exponer Servicios Web: Configuración del servidor web y creación de servicios web simples.

Con estos conocimientos, estás preparado para integrar tus aplicaciones MUMPS con el ecosistema web moderno. En el próximo módulo, exploraremos cómo MUMPS puede interactuar con bases de datos SQL.

© Copyright 2024. Todos los derechos reservados