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

  1. Declaració de Procediments Externs: HttpGet, HttpRequest, i ParseJson són procediments externs que s'utilitzen per fer la sol·licitud HTTP i processar la resposta JSON.
  2. Variables: url conté l'URL del servei web, response emmagatzema la resposta del servei web, i data emmagatzema les dades processades.
  3. Sol·licitud HTTP: HttpRequest envia una sol·licitud GET a l'URL especificat i emmagatzema la resposta en response.
  4. Processament de JSON: ParseJson processa la resposta JSON i emmagatzema les dades en data.
  5. 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

  1. Declaració de Procediments Externs: HttpResponse és un procediment extern que s'utilitza per enviar la resposta HTTP.
  2. Variable: jsonResponse conté la resposta JSON que es retornarà al client.
  3. 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

  1. Troba un servei web públic que retorni dades en format JSON.
  2. Escriu un programa RPG que consumeixi aquest servei web i mostri les dades retornades.

Exercici 2: Crear un Servei Web REST

  1. Escriu un programa RPG que creï un servei web REST que retorni un missatge personalitzat en format JSON.
  2. 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.

© Copyright 2024. Tots els drets reservats