🟡 Filtern > Klassifizierungen
Kurz erklärt
Section titled “Kurz erklärt”Klassifizierungen sind in dataCycle die häufigste Art zu filtern.
Du kannst sie dir vorstellen wie:
- Kategorien / Tags / Themen
- oft hierarchisch (Baum: „Sport“ → „Wandern“ → „Winterwandern“)
Wenn du nach Klassifizierungen filterst, bekommst du nur jene Inhalte, die zu deiner Auswahl passen.
➡️ Wichtig: Wie die Klassifizierung genau heißt und welche Werte erlaubt sind, hängt von der jeweiligen dataCycle-Instanz ab.
Voraussetzungen
Section titled “Voraussetzungen”Du brauchst:
{BASE_URL}{ENDPOINT}(ID oder Slug){TOKEN}
Und du brauchst mindestens einen Klassifizierungswert, z. B.:
{SCHEME}(z. B. „kategorien“, „themen“, „zielgruppen“ …){CONCEPT}(z. B. „wandern“, „museum“, „familie“ …)
Wenn du nicht weißt, welche Klassifizierungen es gibt: frag den Betreiber der Instanz oder schau in die Klassifizierungs-API (wird separat erklärt).
GET: Klassifizierungen als Query-Parameter
Section titled “GET: Klassifizierungen als Query-Parameter”⚠️ Der konkrete Parametername ist instanz-/API-spezifisch.
Hier ist das Muster: statt filter[q] verwendest du einen Klassifizierungsfilter.
curl -s \ -H "Authorization: Bearer {TOKEN}" \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}?filter[{CLASSIFICATION_FILTER_KEY}]={VALUE}"Beispiel-Platzhalter (lesbarer):
curl -s \ -H "Authorization: Bearer {TOKEN}" \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}?filter[classification]={CONCEPT}"POST: Klassifizierungen im Body (empfohlen bei mehreren Filtern)
Section titled “POST: Klassifizierungen im Body (empfohlen bei mehreren Filtern)”POST ist meistens angenehmer, weil du Filter sauber als JSON schreiben kannst:
curl -s \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{ "filter": { "{CLASSIFICATION_FILTER_KEY}": "{VALUE}" } }'Beispiel (lesbarer):
curl -s \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{ "filter": { "classification": "{CONCEPT}" } }'Mehrere Klassifizierungen kombinieren
Section titled “Mehrere Klassifizierungen kombinieren”1) „UND“-Logik (typisch)
Section titled “1) „UND“-Logik (typisch)”Oft gilt: mehrere Filter = UND
➡️ Das Ergebnis wird kleiner, weil Inhalte alle Bedingungen erfüllen müssen.
curl -s \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{ "filter": { "{CLASSIFICATION_FILTER_KEY_1}": "{VALUE_1}", "{CLASSIFICATION_FILTER_KEY_2}": "{VALUE_2}" } }'2) „ODER“-Logik (wenn unterstützt)
Section titled “2) „ODER“-Logik (wenn unterstützt)”Manche Instanzen unterstützen Listen/Arrays oder eigene „OR“-Filter.
Muster:
curl -s \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{ "filter": { "{CLASSIFICATION_FILTER_KEY}": ["{VALUE_1}", "{VALUE_2}"] } }'Falls ihr ODER-Logik anders macht (z. B. über einen eigenen union-Mechanismus): das dokumentieren wir auf einer eigenen Seite.
Klassifizierungen + Volltext kombinieren (typischster Use Case)
Section titled “Klassifizierungen + Volltext kombinieren (typischster Use Case)”curl -s \ -H "Authorization: Bearer {TOKEN}" \ -H "Content-Type: application/json" \ -X POST \ "{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \ -d '{ "filter": { "q": "museum", "{CLASSIFICATION_FILTER_KEY}": "{CONCEPT}" }, "page": { "size": 25, "number": 1 } }'Typische Stolpersteine
Section titled “Typische Stolpersteine”200 OK, aber 0 Ergebnisse
Section titled “200 OK, aber 0 Ergebnisse”Häufige Ursachen:
- Der Endpoint enthält diese Inhalte nicht (falscher Endpoint)
- Der Klassifizierungswert passt nicht (Tippfehler, falsche ID/Slug)
- Du kombinierst Filter zu streng (UND-Logik)
- Der Begriff passt, aber es gibt aktuell keine passenden Inhalte (z. B. Events in Vergangenheit)
400 Bad Request
Section titled “400 Bad Request”Meist:
- Filter-Key ist falsch benannt
- Wert hat falsches Format (String vs. Liste vs. Objekt)
Platzhalter
Section titled “Platzhalter”Wir verwenden in Beispielen:
{BASE_URL}{ENDPOINT}{TOKEN}{CLASSIFICATION_FILTER_KEY}{VALUE}
Nächste Schritte
Section titled “Nächste Schritte”- Filtern: Attribute
- Sortierung
- Geo-Filter