En aquest mòdul, aprendrem com integrar RPG amb serveis web, una habilitat essencial per a la programació moderna. Els serveis web permeten que les aplicacions es comuniquin entre si a través d'Internet, utilitzant protocols estàndard com HTTP i formats de dades com XML i JSON.
Objectius del Mòdul
- Entendre què són els serveis web i com funcionen.
- Aprendre a consumir serveis web des d'un programa RPG.
- Aprendre a crear serveis web utilitzant RPG.
Què són els Serveis Web?
Els serveis web són aplicacions que permeten la comunicació entre diferents sistemes a través d'Internet. Utilitzen protocols estàndard com HTTP per enviar i rebre dades en formats com XML o JSON.
Tipus de Serveis Web
- SOAP (Simple Object Access Protocol): Utilitza XML per a la missatgeria i és conegut per la seva robustesa i seguretat.
- REST (Representational State Transfer): Utilitza HTTP i és més lleuger i fàcil d'implementar que SOAP. Les dades es poden enviar en formats com JSON o XML.
Consumint Serveis Web des d'un Programa RPG
Pas 1: Configuració de l'Entorn
Abans de començar, assegura't que el teu entorn de desenvolupament RPG estigui configurat per suportar la comunicació HTTP. Això pot requerir la instal·lació de biblioteques addicionals o la configuració de permisos de xarxa.
Pas 2: Exemple de Consum de Servei Web REST
A continuació, es mostra un exemple de com consumir un servei web REST que retorna dades en format JSON.
Exemple de Codi
**free
ctl-opt dftactgrp(*no) actgrp('QILE');
dcl-pr HttpGet pointer extproc('QtmhGetEnv');
envVar char(100) const;
envVal char(100) options(*varsize);
end-pr;
dcl-s url char(256) inz('http://api.example.com/data');
dcl-s response char(1024);
dcl-pr HttpRequest int(10) extproc('QtmhGetEnv');
url char(256) const;
response char(1024) options(*varsize);
end-pr;
dcl-pr ParseJson int(10) extproc('QtmhGetEnv');
json char(1024) const;
data char(256) options(*varsize);
end-pr;
dcl-s data char(256);
HttpRequest(url: response);
ParseJson(response: data);
dsply data;
*inlr = *on;Explicació del Codi
- Declaració de Procediments Externs:
HttpGet,HttpRequest, iParseJsonsón procediments externs que s'utilitzen per fer la sol·licitud HTTP i processar la resposta JSON. - Variables:
urlconté l'URL del servei web,responseemmagatzema la resposta del servei web, idataemmagatzema les dades processades. - Sol·licitud HTTP:
HttpRequestenvia una sol·licitud GET a l'URL especificat i emmagatzema la resposta enresponse. - Processament de JSON:
ParseJsonprocessa la resposta JSON i emmagatzema les dades endata. - Visualització de Dades:
dsply datamostra les dades processades.
Pas 3: Tractament d'Errors
És important gestionar els errors que poden ocórrer durant la comunicació amb el servei web. Això pot incloure la gestió de codis d'estat HTTP i la validació de la resposta JSON.
Creant Serveis Web amb RPG
Pas 1: Configuració del Servei
Per crear un servei web amb RPG, necessitaràs configurar el teu servidor per acceptar sol·licituds HTTP i processar-les amb programes RPG.
Pas 2: Exemple de Creació de Servei Web REST
A continuació, es mostra un exemple de com crear un servei web REST que retorna dades en format JSON.
Exemple de Codi
**free
ctl-opt dftactgrp(*no) actgrp('QILE');
dcl-pr HttpResponse int(10) extproc('QtmhWrStout');
response char(1024) const;
end-pr;
dcl-s jsonResponse char(1024);
jsonResponse = '{ "message": "Hello, World!" }';
HttpResponse(jsonResponse);
*inlr = *on;Explicació del Codi
- Declaració de Procediments Externs:
HttpResponseés un procediment extern que s'utilitza per enviar la resposta HTTP. - Variable:
jsonResponseconté la resposta JSON que es retornarà al client. - Resposta HTTP:
HttpResponseenvia la resposta JSON al client.
Pas 3: Proves i Depuració
Prova el teu servei web utilitzant eines com Postman o cURL per assegurar-te que funciona correctament. Depura qualsevol problema que pugui sorgir durant les proves.
Exercicis Pràctics
Exercici 1: Consumir un Servei Web REST
- Troba un servei web públic que retorni dades en format JSON.
- Escriu un programa RPG que consumeixi aquest servei web i mostri les dades retornades.
Exercici 2: Crear un Servei Web REST
- Escriu un programa RPG que creï un servei web REST que retorni un missatge personalitzat en format JSON.
- Prova el teu servei web utilitzant una eina com Postman.
Solucions als Exercicis
Solució a l'Exercici 1
**free
ctl-opt dftactgrp(*no) actgrp('QILE');
dcl-pr HttpRequest int(10) extproc('QtmhGetEnv');
url char(256) const;
response char(1024) options(*varsize);
end-pr;
dcl-pr ParseJson int(10) extproc('QtmhGetEnv');
json char(1024) const;
data char(256) options(*varsize);
end-pr;
dcl-s url char(256) inz('http://api.example.com/data');
dcl-s response char(1024);
dcl-s data char(256);
HttpRequest(url: response);
ParseJson(response: data);
dsply data;
*inlr = *on;Solució a l'Exercici 2
**free
ctl-opt dftactgrp(*no) actgrp('QILE');
dcl-pr HttpResponse int(10) extproc('QtmhWrStout');
response char(1024) const;
end-pr;
dcl-s jsonResponse char(1024);
jsonResponse = '{ "message": "Hello, RPG World!" }';
HttpResponse(jsonResponse);
*inlr = *on;Resum
En aquest mòdul, hem après què són els serveis web i com consumir i crear serveis web utilitzant RPG. Hem vist exemples pràctics de codi i hem realitzat exercicis per reforçar els conceptes apresos. Amb aquestes habilitats, estaràs preparat per integrar RPG amb tecnologies modernes i crear aplicacions més robustes i interconnectades.
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
