En este módulo, aprenderemos cómo integrar RPG con tecnologías modernas utilizando APIs y JSON. Este conocimiento es crucial para desarrollar aplicaciones que interactúan con otros sistemas y servicios web.
¿Qué es una API?
Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y definiciones que permiten a diferentes aplicaciones comunicarse entre sí. Las APIs son esenciales para la integración de sistemas y la creación de aplicaciones que pueden interactuar con servicios externos.
Tipos de APIs
- APIs REST: Utilizan HTTP y son muy comunes en aplicaciones web.
- APIs SOAP: Utilizan XML y son más estructuradas y seguras.
- APIs GraphQL: Permiten consultas más flexibles y específicas.
¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos. Es fácil de leer y escribir para los humanos y fácil de parsear y generar para las máquinas.
Estructura de JSON
- Objetos: Colecciones de pares clave-valor.
- Arreglos: Listas ordenadas de valores.
- Valores: Pueden ser cadenas, números, objetos, arreglos,
true
,false
, onull
.
Ejemplo de JSON
Integración de RPG con APIs y JSON
Configuración del Entorno
Para trabajar con APIs y JSON en RPG, necesitamos asegurarnos de tener las bibliotecas y herramientas adecuadas. Una de las herramientas más comunes es HTTPAPI
, una biblioteca de código abierto para realizar solicitudes HTTP desde RPG.
Instalación de HTTPAPI
- Descarga la biblioteca desde HTTPAPI.
- Sigue las instrucciones de instalación proporcionadas en el sitio web.
Realizando una Solicitud HTTP
A continuación, veremos cómo realizar una solicitud HTTP GET para obtener datos en formato JSON.
Ejemplo de Código RPG
H DFTACTGRP(*NO) ACTGRP(*NEW) D/copy httpapi_h D url S 256A varying D rc S 10I 0 D response S 1024A varying /free // URL del API url = 'https://api.ejemplo.com/datos'; // Realizar la solicitud GET rc = http_url_get(url: %addr(response): %len(response)); // Verificar si la solicitud fue exitosa if rc = 1; dsply response; else; dsply 'Error en la solicitud HTTP'; endif; *inlr = *on; /end-free
Parseando JSON en RPG
Para trabajar con los datos JSON obtenidos, necesitamos parsearlos. Podemos usar la biblioteca YAJL
(Yet Another JSON Library) para esto.
Instalación de YAJL
- Descarga la biblioteca desde YAJL.
- Sigue las instrucciones de instalación proporcionadas en el sitio web.
Ejemplo de Código para Parsear JSON
H DFTACTGRP(*NO) ACTGRP(*NEW) D/copy yajl_h D jsonString S 1024A varying D jsonNode S O CLASS(*JAVA:'com/ibm/as400/data/YAJLNode') D jsonParser S O CLASS(*JAVA:'com/ibm/as400/data/YAJLParser') D nombre S 256A varying D edad S 10I 0 /free // JSON de ejemplo jsonString = '{"nombre": "Juan", "edad": 30}'; // Crear el parser jsonParser = new_YAJLParser(); // Parsear el JSON jsonNode = jsonParser@parse(jsonString); // Extraer los valores nombre = jsonNode@getString('nombre'); edad = jsonNode@getInt('edad'); // Mostrar los valores dsply 'Nombre: ' + nombre; dsply 'Edad: ' + %char(edad); *inlr = *on; /end-free
Ejercicio Práctico
Ejercicio 1: Realizar una Solicitud HTTP y Parsear JSON
- Realiza una solicitud HTTP GET a la API
https://jsonplaceholder.typicode.com/users/1
. - Parsear la respuesta JSON para extraer el nombre y el correo electrónico del usuario.
- Mostrar los valores en la consola.
Solución
H DFTACTGRP(*NO) ACTGRP(*NEW) D/copy httpapi_h D/copy yajl_h D url S 256A varying D rc S 10I 0 D response S 1024A varying D jsonNode S O CLASS(*JAVA:'com/ibm/as400/data/YAJLNode') D jsonParser S O CLASS(*JAVA:'com/ibm/as400/data/YAJLParser') D nombre S 256A varying D email S 256A varying /free // URL del API url = 'https://jsonplaceholder.typicode.com/users/1'; // Realizar la solicitud GET rc = http_url_get(url: %addr(response): %len(response)); // Verificar si la solicitud fue exitosa if rc = 1; // Crear el parser jsonParser = new_YAJLParser(); // Parsear el JSON jsonNode = jsonParser@parse(response); // Extraer los valores nombre = jsonNode@getString('name'); email = jsonNode@getString('email'); // Mostrar los valores dsply 'Nombre: ' + nombre; dsply 'Email: ' + email; else; dsply 'Error en la solicitud HTTP'; endif; *inlr = *on; /end-free
Conclusión
En esta sección, hemos aprendido cómo integrar RPG con APIs y JSON. Hemos cubierto los conceptos básicos de las APIs y JSON, cómo realizar solicitudes HTTP y cómo parsear datos JSON en RPG. Estos conocimientos son fundamentales para desarrollar aplicaciones modernas que interactúan con otros sistemas y servicios web.
En el próximo módulo, exploraremos cómo manejar XML en RPG, otra tecnología clave para la integración de sistemas.
Curso de Programación RPG
Módulo 1: Introducción a la Programación RPG
- ¿Qué es RPG?
- Configuración de tu Entorno de Desarrollo
- Sintaxis y Estructura Básica
- Programa Hola Mundo
Módulo 2: Conceptos Básicos
- Tipos de Datos y Variables
- Operadores y Expresiones
- Estructuras de Control
- Funciones y Procedimientos
Módulo 3: Trabajando con Datos
Módulo 4: Técnicas Avanzadas de Programación
Módulo 5: RPG IV y Más Allá
Módulo 6: Integrando RPG con Tecnologías Modernas
Módulo 7: Aplicaciones del Mundo Real
- Construyendo una Aplicación Simple
- Estudio de Caso: Sistema de Gestión de Inventarios
- Estudio de Caso: Sistema de Nómina
- Mejores Prácticas y Revisión de Código