🇮🇹 Italiano
🇮🇹 Italiano
Appearance
🇮🇹 Italiano
🇮🇹 Italiano
Appearance
Work Package 6: API REST e catalogo open data secondo standard DCAT-AP_IT
Sviluppo di API REST v2 per accesso programmatico ai dati SLO e pubblicazione di dataset open data secondo lo standard europeo DCAT-AP_IT.
Obiettivi:
Documento di progettazione API:
Implementazione API REST con:
Pubblicazione dataset open data tramite CKAN:
GET /api/v2/slo # Lista Sistemi Locali Omogenei
GET /api/v2/slo/{id} # Dettaglio SLO
GET /api/v2/comuni # Lista comuni con attributi
GET /api/v2/comuni/{codice} # Dettaglio comune
GET /api/v2/isocrone/{codice} # Isocrone accessibilità
GET /api/v2/polarita # Polarità territoriali
GET /api/v2/datasets # Catalogo dataset disponibiliCKAN espone automaticamente API standard per ogni dataset pubblicato:
# CKAN Action API (JSON)
GET /api/3/action/package_list # Lista dataset
GET /api/3/action/package_show?id={dataset_id} # Metadata dataset
GET /api/3/action/resource_show?id={resource_id} # Metadata risorsa
GET /api/3/action/datastore_search?resource_id={id} # Query dati
# DCAT-AP_IT Endpoint (RDF/XML)
GET /catalog.xml # Catalogo DCAT-AP_IT completo
GET /dataset/{dataset_id}.xml # Metadata DCAT singolo dataset
# CSW Harvesting (per dati.gov.it)
GET /csw?request=GetCapabilities
GET /csw?request=GetRecords&outputSchema=http://www.isotc211.org/2005/gmdWorkflow automatizzato Prefect:
@flow(name="publish-to-ckan")
def publish_open_data():
"""
Pubblica dataset approvati da Gold layer a CKAN
Steps:
1. Query gold.open_data_approved (flag published=false)
2. Export dataset (CSV, GeoJSON, Parquet)
3. Generate DCAT-AP_IT metadata
4. Upload to CKAN via API
5. Update published=true flag
6. Notify dati.gov.it harvester
"""
approved_datasets = get_approved_datasets()
for dataset in approved_datasets:
# Export da PostgreSQL
export_dataset(dataset)
# Genera metadata DCAT-AP_IT
metadata = generate_dcat_metadata(
dataset,
license="CC-BY-4.0",
publisher="Fondazione Gran Sasso Tech",
temporal_coverage="2010-2025",
spatial_coverage="Italia"
)
# Upload to CKAN
ckan_client.package_create(
name=dataset.slug,
title=dataset.title,
notes=dataset.description,
extras=metadata
)
# Mark as published
mark_as_published(dataset.id)Trigger:
Il progetto MAPS adotta un'architettura dual-catalog per separare governance interna e accesso pubblico:
| Strumento | Audience | Scopo |
|---|---|---|
| OpenMetadata | Data operators interni (WP2) | Governance, lineage, data quality |
| CKAN | Pubblico esterno (WP6) | Catalogo open data, DCAT-AP_IT, dati.gov.it |
Questa separazione garantisce:
Workflow: Gold Layer → OpenMetadata (approvazione qualità) → CKAN (pubblicazione) → dati.gov.it (harvesting)
🚧 In preparazione - La documentazione sarà disponibile durante la fase di implementazione (M20-M24)
Autore: Guglielmo Celata - Fondazione Gran Sasso Tech