Dopo aver fatto la discussione del gioco di probabilità ho pensato di fare un programma che mostra il meteo in COBOL.
Di norma non si potrebbe fare perché senza librerie è impossibile fare richieste HTTP.
Per questo ho utilizzato l'utility CURL per effettuare la richiesta HTTP e ottenere i dati in formato JSON!
CURL è un utility per il trasferimento di file utilizzando i protocolli di rete come HTTP, HTTPS, FTP, SCP, SFTP e altri.
IDENTIFICATION DIVISION.
PROGRAM-ID. WEATHER-PROGRAM.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 API-KEY PIC X(32).
01 BASE-URL PIC X(100) VALUE "https://api.meteo.it/api/v1/forecasts/localities/".
01 CITY-CODE PIC X(10) VALUE "Roma".
01 PARAMETERS PIC X(50) VALUE "?lang=it&format=json&units=M".
01 COMPLETE-URL PIC X(200).
01 CURL-COMMAND PIC X(200).
01 CURL-OUTPUT PIC X(10000).
01 DATA PIC X(10000).
01 RESULT-CODE PIC 9(9).
PROCEDURE DIVISION.
MAIN-LOGIC SECTION.
MOVE "YOUR_API_KEY" TO API-KEY
CONCATENATE BASE-URL CITY-CODE PARAMETERS INTO COMPLETE-URL
MOVE "curl -X GET " COMPLETE-URL " -H 'Authorization: Bearer " API-KEY "' -o DATA.json" TO CURL-COMMAND
EXEC CICS SEND CURL-COMMAND FROM CURL-OUTPUT
EXEC CICS RECEIVE DATA FROM DATA
MOVE DATA TO JSON-DATA
GOBACK.
.
L'output sarà:
{
"status": "OK",
"code": 200,
"data": {
"current": {
"day": "09",
"month": "01",
"year": "2023",
"hour": "13",
"minute": "00",
"week_day": "Giovedì",
"observation_time": "13:00",
"sunrise": "07:44",
"sunset": "16:59",
"temperature": "11",
"feels_like": "7",
"pressure": "1019",
"humidity": "93",
"wind": {
"speed": "6",
"angle": "30",
"description": "da Est"
},
"visibility": "Good",
"description": "Poco nuvoloso",
"icon": "3",
"icon_url": "https://www.ilmeteo.it/portale/wxicons/03.png",
"uv_index": "1",
"uv_risk": "Basso"
In poche parole effettua una richiesta HTTP alle API di Meteo.it e ottiene i dati in formato JSON!