En aquest tema, explorarem com integrar RPG amb tecnologies modernes mitjançant l'ús d'APIs i JSON. Aprendrem què són les APIs, com utilitzar-les des de RPG, i com treballar amb JSON per intercanviar dades de manera eficient.
Què és una API?
Una API (Application Programming Interface) és un conjunt de regles que permeten que diferents aplicacions es comuniquin entre si. Les APIs defineixen els mètodes i les dades que les aplicacions poden utilitzar per interactuar amb altres serveis o aplicacions.
Tipus d'APIs
- APIs RESTful: Utilitzen el protocol HTTP per realitzar operacions CRUD (Create, Read, Update, Delete).
- APIs SOAP: Utilitzen el protocol SOAP (Simple Object Access Protocol) i són més complexes que les APIs RESTful.
Què és JSON?
JSON (JavaScript Object Notation) és un format lleuger per a l'intercanvi de dades. És fàcil de llegir i escriure per a humans, i fàcil de parsejar i generar per a màquines.
Exemple de JSON
Utilitzant APIs des de RPG
Configuració de l'Entorn
Abans de començar a treballar amb APIs des de RPG, necessitem assegurar-nos que el nostre entorn està configurat correctament. Això inclou tenir accés a les biblioteques necessàries per a la comunicació HTTP i la manipulació de JSON.
Exemple Pràctic: Consumint una API RESTful
Suposem que volem consumir una API que retorna informació sobre el temps en format JSON. Utilitzarem una API pública per a aquest exemple.
Pas 1: Realitzar una Petició HTTP
Utilitzarem la funció HTTPAPI
per realitzar una petició GET a l'API.
Dcl-S url Varchar(256) Inz('http://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=Barcelona'); Dcl-S response Varchar(10000); Dcl-S httpStatus Int(10); httpStatus = HTTPAPI('GET': url: '': response); If httpStatus <> 200; Dsply ('Error en la petició HTTP: ' + %Char(httpStatus)); Return; EndIf;
Pas 2: Parsejar la Resposta JSON
Un cop tenim la resposta de l'API, necessitem parsejar el JSON per extreure la informació que ens interessa.
Dcl-S jsonNode Pointer; Dcl-S temp Varchar(10); Dcl-S condition Varchar(50); jsonNode = JSON_PARSE(response); temp = JSON_GET_VALUE(jsonNode: 'current.temp_c'); condition = JSON_GET_VALUE(jsonNode: 'current.condition.text'); Dsply ('Temperatura: ' + temp + '°C'); Dsply ('Condició: ' + condition);
Explicació del Codi
-
Realitzar la Petició HTTP:
- Definim la URL de l'API amb els paràmetres necessaris.
- Utilitzem
HTTPAPI
per realitzar una petició GET. - Comprovem l'estat de la resposta HTTP. Si no és 200 (OK), mostrem un missatge d'error.
-
Parsejar la Resposta JSON:
- Utilitzem
JSON_PARSE
per convertir la resposta JSON en un node que podem manipular. - Utilitzem
JSON_GET_VALUE
per extreure valors específics del JSON.
- Utilitzem
Exercicis Pràctics
Exercici 1: Consumir una API de Monedes
- Troba una API pública que proporcioni informació sobre el tipus de canvi de monedes.
- Escriu un programa RPG que realitzi una petició a aquesta API i mostri el tipus de canvi entre dues monedes.
Solució Proposada
Dcl-S url Varchar(256) Inz('https://api.exchangerate-api.com/v4/latest/USD'); Dcl-S response Varchar(10000); Dcl-S httpStatus Int(10); Dcl-S rate Varchar(10); httpStatus = HTTPAPI('GET': url: '': response); If httpStatus <> 200; Dsply ('Error en la petició HTTP: ' + %Char(httpStatus)); Return; EndIf; Dcl-S jsonNode Pointer; jsonNode = JSON_PARSE(response); rate = JSON_GET_VALUE(jsonNode: 'rates.EUR'); Dsply ('Tipus de canvi USD a EUR: ' + rate);
Exercici 2: Enviar Dades a una API
- Troba una API pública que accepti dades en format JSON.
- Escriu un programa RPG que enviï dades a aquesta API utilitzant una petició POST.
Solució Proposada
Dcl-S url Varchar(256) Inz('https://jsonplaceholder.typicode.com/posts'); Dcl-S requestBody Varchar(1000) Inz('{"title": "foo", "body": "bar", "userId": 1}'); Dcl-S response Varchar(10000); Dcl-S httpStatus Int(10); httpStatus = HTTPAPI('POST': url: requestBody: response); If httpStatus <> 201; Dsply ('Error en la petició HTTP: ' + %Char(httpStatus)); Return; EndIf; Dsply ('Resposta de l\'API: ' + response);
Resum
En aquest tema, hem après què són les APIs i JSON, i com utilitzar-los des de RPG. Hem vist exemples pràctics de com realitzar peticions HTTP i parsejar respostes JSON. També hem practicat amb exercicis per reforçar els conceptes apresos.
En el següent tema, explorarem com gestionar XML des de RPG, una altra tècnica important per a la integració amb tecnologies modernes.
Curs de Programació RPG
Mòdul 1: Introducció a la Programació RPG
- Què és RPG?
- Configuració del Teu Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Programa Hello World
Mòdul 2: Conceptes Bàsics
Mòdul 3: Treballant amb Dades
Mòdul 4: Tècniques Avançades de Programació
Mòdul 5: RPG IV i Més Enllà
Mòdul 6: Integrant RPG amb Tecnologies Modernes
Mòdul 7: Aplicacions del Món Real
- Construint una Aplicació Simple
- Estudi de Cas: Sistema de Gestió d'Inventari
- Estudi de Cas: Sistema de Nòmines
- Millors Pràctiques i Revisió de Codi