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
, iParseJson
són procediments externs que s'utilitzen per fer la sol·licitud HTTP i processar la resposta JSON. - Variables:
url
conté l'URL del servei web,response
emmagatzema la resposta del servei web, idata
emmagatzema les dades processades. - Sol·licitud HTTP:
HttpRequest
envia una sol·licitud GET a l'URL especificat i emmagatzema la resposta enresponse
. - Processament de JSON:
ParseJson
processa la resposta JSON i emmagatzema les dades endata
. - Visualització de Dades:
dsply data
mostra 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:
jsonResponse
conté la resposta JSON que es retornarà al client. - Resposta HTTP:
HttpResponse
envia 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