Skip to content

Und und Oder

Eine einfache Filterabfrage sieht oft so aus:

Section titled “Eine einfache Filterabfrage sieht oft so aus:”
Terminal window
https://api.example.com/products?category=shoes

Diese URL fragt alle Produkte ab, bei denen das Feld category den Wert shoes hat.

Wenn mehrere Parameter gleichzeitig in der URL vorkommen, werden sie meist automatisch als UND-Bedingungen interpretiert:

Terminal window
https://api.example.com/products?category=shoes&color=black

➡️ Diese Anfrage bedeutet: Gib mir alle Produkte, die category = shoes UND color = black haben.

🔹 Komplexe Filter mit ODER (OR) oder verschachtelten Bedingungen

Section titled “🔹 Komplexe Filter mit ODER (OR) oder verschachtelten Bedingungen”

Für komplexere Fälle, z. B. „Kategorie ist Schuhe oder Jacken“, reichen einfache URL-Parameter nicht mehr. Stattdessen wird oft ein einzelner Parameter filter verwendet, der ein JSON-Objekt enthält – als Zeichenkette codiert:

Terminal window
https://api.example.com/products?filter={"or":[{"category":"shoes"},{"category":"jackets"}]}

➡️ Diese URL fragt alle Produkte ab, deren category entweder shoes oder jackets ist.

Du kannst auch mehrere Bedingungen logisch verschachteln:

Terminal window
https://api.example.com/products?filter={"and":[{"in_stock":true},{"or":[{"category":"shoes"},{"category":"jackets"}]}]}
  • Produkt ist auf Lager, und

  • die Kategorie ist Schuhe oder Jacken

Damit solche URLs funktionieren, müssen:

  • die Filter als JSON-Objekt formuliert werden

  • das JSON-Objekt korrekt URL-kodiert werden (z. B. " → %22, { → %7B usw.)

  • die API diese Syntax unterstützen (nicht alle tun das)

Filter mit „und“ und „oder“ in JSON-basierten API-Abfragen

Section titled “Filter mit „und“ und „oder“ in JSON-basierten API-Abfragen”

Wenn du Daten über eine API mit einem JSON-Request filterst, kannst du mit logischen Operatoren wie and (UND) und or (ODER) gezielt bestimmen, welche Bedingungen gleichzeitig oder alternativ erfüllt sein müssen. Diese Operatoren werden meist innerhalb eines filter-Objekts verschachtelt.

Alle Bedingungen müssen zutreffen, damit ein Datensatz zurückgegeben wird.

Terminal window
{
"filter": {
"and": [
{ "status": "active" },
{ "type": "premium" }
]
}
}

➡️ Nur Datensätze, bei denen status = active und type = premium ist, werden zurückgegeben.

Mindestens eine der Bedingungen muss zutreffen.

Terminal window
{
"filter": {
"or": [
{ "status": "inactive" },
{ "status": "pending" }
]
}
}

➡️ Gibt alle Datensätze zurück, bei denen status = inactive oder status = pending ist.

Du kannst Bedingungen auch verschachteln, um komplexere Filter zu bauen.

Terminal window
{
"filter": {
"and": [
{ "region": "EU" },
{
"or": [
{ "status": "active" },
{ "status": "pending" }
]
}
]
}
}

➡️ Gibt Datensätze zurück, die:

  • aus der Region „EU“ stammen, und

  • deren Status entweder „active“ oder „pending“ ist.

🔧 Hinweise zur Umsetzung in der API

  • Manche APIs verwenden must, should, oder filter statt and/or (z. B. Elasticsearch).

  • Achte immer auf das API-Schema der jeweiligen Plattform.

  • Verschachtelung ist der Schlüssel zu präzisen Abfragen.