Zum Hauptinhalt springen
Version: In Entwicklung
Metadaten und Datenangebote

CKAN Action 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 Action 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 Action-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.

Metadatenstandards

Die Standardkonfiguration aktiviert unter anderem DCAT-/DCAT-DE-Erweiterungen. DCAT-Feeds und Harvesting ergänzen die CKAN Action API, ersetzen sie aber nicht. Welche Profile und Endpunkte veröffentlicht werden, hängt von den aktivierten CKAN-Plugins und der mandantenspezifischen Konfiguration ab.

Weiterführend:

Offizielle API-Referenz

Die CKAN-Dokumentation beschreibt den vollständigen Aufbau der Action 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 Action API

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

CKAN API Guide öffnen