IT/EN
Openpolis DataManager contiene tutti i dati Openpolis sul potere in Italia.
Sono mappati attualmente 908.560 incarichi pubblici, 92.036 partecipazioni societarie, che riguardano 466.225 persone e 109.293 organizzazioni di diritto o a controllo pubblico, distribuite su 8.753 aree geografiche.
Attualmente è implementata una API REST, che permette l'accesso libero in sola lettura.
L'API REST è sviluppata secondo lo standard Open API e la documentazione, interattiva e generata e aggiornata automaticamente, è disponibile, con la possibilità di effettuare richieste alle API.
L'API fornisce risposte in formato JSON o in formato HTML navigabile ed è quindi esplorabile da browser (con filtri, motore di ricerca e ordinamento dei risultati).
Le risposte sono paginate, con 25 risultati per pagina di default, estendibili fino a 1000. I link per caricare le pagine successive o precedenti si trovano sotto forma di URL nella stessa pagina dei risultati.
Le modifiche future all'API sono versionate (attualmente v1), in modo da garantire la continuità di esercizio agli applicativi che la utilizzino per tutto il tempo necessario all'adozione delle nuove versioni.
Gli accessi sono attualmente limitati a 10000 per giorno per utenti anonimi, e illimitati per utenti autorizzati.
L'autorizzazione può essere fatta attraverso JSON Web Token o HTTP Basic Auth.
Tutti gli endpoint rispondono esclusivamente su porta HTTPS, in modo che l'invio dei parametri di autorizzazione non avvenga in chiaro.
E' previsto, a breve, il rilascio di un endpoint Graphql, per semplificare il processo di sviluppo di applicativi basati su questi dati.
Il modello è un'istanza di Popolo, uno standard internazionale per gli open government data, sviluppato da un consorzio di cui Openpolis è parte.
Gli oggetti principali (Person, Membership, Organization, Area, Post),
hanno una data inizio (start_date
) e una data fine (end_date
).
A seconda del contesto, le date possono avere nomi e significati differenti,
ad esempio, nel caso di una persona, birth_date
o death_date
, e nel caso
di un'organizzazione, funding_date
e dissolution_date
.
Per tutti gli oggetti principali, sono comunque disponibili filtri su queste date, attraverso i parametri:
status |
oggetti attuali o passati (current, past) |
active_at |
oggetti attivi alla data indicata |
active_from |
oggetti ... |
active_to |
oggetti ... |
Questi parametri sono indicati in modo esplicito nella documentazione.
Esempio: elenco dei soli comuni attivi in data orierna.
http://service.opdm.openpolis.io/v1/areas?istat_classification=COM&status=current
Per ciascuna istanza degli oggetti, sono registrati i timestamp di creazione
e di ultimo aggiornamento. In questo modo è possibile usare il filtro
updated_after
, per richiedere gli elenchi di oggetti aggiornati dopo un
dato istante.
Esempio: elenco dei soli comuni aggiornati dopo le 12 del 24 novembre 2017.
http://service.opdm.openpolis.io/v1/areas?istat_classification=COM&updated_after=2017-11-24T12:00:00
Di seguito sono elencati gli oggetti principali, con i loro campi/relazioni:
Descrive un incarico specifico, legato a un'Organizzazione reale, con una data di inizio e fine.
Denominazione | Descrizione |
---|---|
label |
Descrizione dell'incarico specifico, eventualmente con deleghe |
role |
Descrizione dell'incarico generico (senza località) |
name
TBD
TBD
TBD
I dati sono su un DB relazionale (postgres 9.6) e l'applicazione è sviluppata con django/python.
Le api REST sono sviluppate con django-rest-framework, l'endpoint graphql con graphene-django.
L'applicazione web è servita attraverso Nginx + Gunicorn.
Il sistema operativo è Linux, distribuzione Ubuntu 16.04.
Il codice sorgente dell'applicazione è disponibile liberamente sul repository gitlab di openpolis.
I cambi delle funzionalità sono elencati nel changelog principale.
I cambi nei dati sono elencati nel changelog dei dati.
I dati esposti sono liberamente utilizzabili per fini non commerciali, a patto di citare la fonte, secondo quanto indicato dalla licenza CC-BY-NC.
Per informazioni sull'utilizzo dei dati e/o eventuali segnalazioni di errori: info@openpolis.it.
Per informazioni sulle tecnologie: guglielmo@openpolis.it.
Openpolis Data Manager v2.0.0 - df1e1edfdeebc4e16b122f5dab7cb5877162f6f9