Zum Hauptinhalt springen
Metadaten und Datenangebote

CKAN API

CKAN macht katalogisierte Datensätze und Ressourcen maschinenlesbar. Der API-Zugang läuft direkt über die CKAN-Domain und nicht über die gemeinsamen APISIX-Fachrouten.

Komponente
CKAN
API-Typ
CKAN API
Basis-URL
https://ckan.<DOMAIN>/api/3/action/
Zugriff
öffentliche Reads oder CKAN API-Token

Aufgabe der CKAN API​

Die API beschreibt und verwaltet Katalogobjekte:

  • Datensätze beziehungsweise packages,
  • Ressourcen und deren Download- oder API-Endpunkte,
  • Organisationen und Gruppen,
  • Harvesting-Quellen,
  • tabellarische Inhalte im optionalen CKAN DataStore.

CKAN ist nicht automatisch der Speicherort der in einem Datensatz beschriebenen Fachdaten. Eine Ressource kann beispielsweise auf MinIO, einen GeoServer-Dienst oder eine externe URL verweisen.

API-Aufruf​

Action-Namen werden an die Basis-URL angehängt:

curl --fail --show-error \
--get \
"https://ckan.<DOMAIN>/api/3/action/package_search" \
--data-urlencode "q=mobility" \
--data-urlencode "rows=20"

Eine erfolgreiche CKAN-Antwort enthält üblicherweise:

{
"success": true,
"result": {}
}

HTTP 200 allein genügt deshalb nicht als fachliche Erfolgskontrolle; Clients müssen zusätzlich success auswerten.

Wichtige Actions​

ActionAufgabeTypischer Zugriff
package_searchDatensätze suchenhäufig öffentlich
package_showeinzelnen Datensatz mit Ressourcen lesenhäufig öffentlich
resource_showMetadaten einer Ressource lesenhäufig öffentlich
organization_listOrganisationen auflistenabhängig von CKAN-Konfiguration
datastore_searchtabellarische DataStore-Ressource abfragenabhängig von Ressource
package_createDatensatz anlegenauthentifiziert und berechtigt
package_updateDatensatz ändernauthentifiziert und berechtigt

Authentifizierte Änderungen​

Für schreibende Actions wird ein von CKAN ausgegebenes API-Token verwendet:

curl --fail --show-error \
--request POST \
"https://ckan.<DOMAIN>/api/3/action/package_create" \
--header "Authorization: <CKAN_API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"name": "beispiel-datensatz",
"title": "Beispiel-Datensatz",
"owner_org": "<ORGANIZATION_ID>"
}'

Das Token übernimmt die CKAN-Berechtigungen seines Benutzers. Es ist kein Keycloak Access Token und verwendet nicht die APISIX-Scopes api:read, api:write oder api:delete.

Keycloak und CKAN nicht verwechseln​

Die bereitgestellte CKAN-Oberfläche kann Keycloak für die Browseranmeldung verwenden. Nach der Anmeldung gelten jedoch weiterhin Organisationen, Rollen und Berechtigungen von CKAN. Für direkte API-Aufrufe ist das CKAN-API-Token maßgeblich.

DataStore und Ressourcen​

datastore_search funktioniert nur für Ressourcen, die in den CKAN DataStore geladen wurden. Bei einer normalen URL-, Datei- oder GeoServer-Ressource muss der im Ressourcenobjekt angegebene Endpunkt direkt verwendet werden.

Metadatenstandard DCAT-AP.de​

Die UDSP beschreibt Datensätze vorrangig nach DCAT-AP.de, dem deutschen Anwendungsprofil von DCAT-AP für offene Verwaltungsdaten. Lizenzen und Kategorien werden auf die Vokabulare von DCAT-AP.de abgebildet, damit Portale wie GovData den Katalog einsammeln können.

Weiterführend:

Offizielle API-Referenz​

Die CKAN-Dokumentation beschreibt den vollständigen Aufbau der API, Authentifizierung, Fehlerbehandlung sowie die FileStore- und DataStore-Erweiterungen. Die Referenz ist auf die in der UDSP verwendete CKAN-Versionslinie 2.11 abgestimmt.

Externe Referenz

CKAN API

Offizielle Referenz für Actions, API-Token, Rückgaben sowie FileStore und DataStore.

CKAN API Guide öffnen