Esempi di utilizzo dei dati tramite PHP
Per dettagli sulle API di CKAN si faccia riferimento alla relativa documentazione
Le API REST di CKAN rispondono ad interrogazioni HTTP sulla porta 80.
Per avere informazioni sui macrogruppi descrittivi le chiamate si costruiscono usando il suffisso "/api/3/action/"
le query possono essere :
1. group_list
2. package_list
3. tag_list
La query 1. restituisce la lista dei gruppi, eventuali altri parametri possono essere passati
La query 2. restituisce la lista dei dataset, in precedenti versioni di CKAN questi erano chiamati 'packages' e tracce di questa nomenclatura sono rimaste, eventuali altri parametri possono essere passati
La query 3. restituisce la lista complessiva dei tag che descrivono i vari dataset, tramite il singolo tag e' possibile effettuare ricerche sui singoli datasei. Eventuali altri parametri possono essere passati.
Nota bene: I risultati presenti in questa pagina sono frutto di un'attivita' dimostrativa quindi sono da considerare solo come un aiuto per lo studio delle interfacce.
$url_base = "https://data.tdm-project.it/api/3/action/";
$items_to_query = array("group_list", "package_list", "tag_list");
foreach ($items_to_query as $item) {
print($url_base.$item);
$data = file_get_contents($url_base.$item);
# JSON to obj
$obj = json_decode($data);
# obj to formatted JSON, only to show it pretty
$json_string = json_encode($obj, JSON_PRETTY_PRINT);
print($json_string);
}
Esempio 2¶
La fase di inizializzazione e' comune all'esempio 1
Partendo dal nome di un gruppo ottenuto dall'esempio precedente si richiede quali datasets coinvolga.
Per avere la lista dei datasets occorre impostare a True il parametro include_datasets
e tramite il parametro id
quale gruppo ispezionare.
In questo caso l'endpoint da usare e' group_show
.
Per ulteriori dettagli consultare la relativa documentazione
$data = file_get_contents($url_base.'group_show?id=meteo&include_datasets=1');
# JSON to obj
$obj = json_decode($data);
# obj to formatted JSON, only to show it pretty
$json_string = json_encode($obj, JSON_PRETTY_PRINT);
print($json_string);