Skip to content

🟡 Filtern > Klassifizierungen

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.


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.

Terminal window
curl -s \
-H "Authorization: Bearer {TOKEN}" \
"{BASE_URL}/api/v4/endpoints/{ENDPOINT}?filter[{CLASSIFICATION_FILTER_KEY}]={VALUE}"

Beispiel-Platzhalter (lesbarer):

Terminal window
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:

Terminal window
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):

Terminal window
curl -s \
-H "Authorization: Bearer {TOKEN}" \
-H "Content-Type: application/json" \
-X POST \
"{BASE_URL}/api/v4/endpoints/{ENDPOINT}" \
-d '{
"filter": {
"classification": "{CONCEPT}"
}
}'

Oft gilt: mehrere Filter = UND
➡️ Das Ergebnis wird kleiner, weil Inhalte alle Bedingungen erfüllen müssen.

Terminal window
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}"
}
}'

Manche Instanzen unterstützen Listen/Arrays oder eigene „OR“-Filter.

Muster:

Terminal window
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)”
Terminal window
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 }
}'

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)

Meist:

  • Filter-Key ist falsch benannt
  • Wert hat falsches Format (String vs. Liste vs. Objekt)

Wir verwenden in Beispielen:

  • {BASE_URL}
  • {ENDPOINT}
  • {TOKEN}
  • {CLASSIFICATION_FILTER_KEY}
  • {VALUE}

  • Filtern: Attribute
  • Sortierung
  • Geo-Filter
© dataCycle ✨