PHP: Estrarre i dati in JSON dal sito soldipubblici.gov.it

Alcuni giorni prima di Natale il governo ha lanciato il sito web soldipubblici.gov.it. Questa prima release consente di accedere ai dati dei pagamenti delle regioni, delle aziende sanitarie regionali, delle province e dei comuni, con cadenza mensile e aggiornamento al mese precedente. I dati sono tratti dal sistema SIOPE, frutto di una collaborazione tra Banca d’Italia e Ragioneria Generale dello Stato, che aggrega i pagamenti giornalieri delle diverse PA attraverso una serie di circa 250 codifiche gestionali. In realtà l’unica novità è che l’accesso ai dati SIOPE era filtrato attraverso Banca d’Italia, dunque non accessibile a tutti.

soldipubbliciIl sito esternamente si presenta come un motore di ricerca che restituisce dati non strutturati/aggregabili. In realtà “sotto il cofano” il sito offre possibilità di essere interrogato e restituisce dati in JSON. La “scoperta” si deve a openfuffa.

Tramite bash basta inviare una richiesta del tipo:
curl -i -X POST http://soldipubblici.gov.it/it/ricerca \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
-H "Accept: Application/json" \
-H "X-Requested-With: XMLHttpRequest" --data "codicecomparto=REG&codiceente=000705604"

Dove codicecomparto e codiceente sono variabili che corrispondono alle codifiche SIOPE. Qui si può trovare una lista completa di tutte le codifiche e relativi nome ente, regione di appartenenza e comparto. Qui l’esempio di un elemento dell’array:

Per poter estrarre i singoli elementi abbiamo bisogno di decodificare il JSON. Ecco un esempio per estrarre i codici e i nomi degli enti (per poi poterli usare nelle richieste al portale):

I gestori del portale hanno già affermato che stanno pensando a realizzare delle API ufficiali:

Nel frattempo già molti si sono messi all’opera per sfruttare questo metodo “sporco” e estrarre dati via JSON.
Un modo veloce per poter iniziare a “giocare” con questo enorme database può essere via PHP. Ecco qui uno snippet base che ho scritto che permette di fare richiesta di dati per qualsiasi ente via JSON specificando le due variabili “codicecomparto” e “codiceente” (estratte come visto prima attraverso json_decode):

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *