Und und Oder
Eine einfache Filterabfrage sieht oft so aus:
Section titled “Eine einfache Filterabfrage sieht oft so aus:”https://api.example.com/products?category=shoesDiese URL fragt alle Produkte ab, bei denen das Feld category den Wert shoes hat.
🔹 Mehrere Bedingungen mit UND (AND)
Section titled “🔹 Mehrere Bedingungen mit UND (AND)”Wenn mehrere Parameter gleichzeitig in der URL vorkommen, werden sie meist automatisch als UND-Bedingungen interpretiert:
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:
https://api.example.com/products?filter={"or":[{"category":"shoes"},{"category":"jackets"}]}➡️ Diese URL fragt alle Produkte ab, deren category entweder shoes oder jackets ist.
🔹 AND/OR kombiniert in der URL
Section titled “🔹 AND/OR kombiniert in der URL”Du kannst auch mehrere Bedingungen logisch verschachteln:
https://api.example.com/products?filter={"and":[{"in_stock":true},{"or":[{"category":"shoes"},{"category":"jackets"}]}]}➡️ Bedeutung:
Section titled “➡️ Bedeutung:”-
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.
🔹 UND-Verknüpfung (and)
Section titled “🔹 UND-Verknüpfung (and)”Alle Bedingungen müssen zutreffen, damit ein Datensatz zurückgegeben wird.
Beispiel:
Section titled “Beispiel:”{ "filter": { "and": [ { "status": "active" }, { "type": "premium" } ] }}➡️ Nur Datensätze, bei denen status = active und type = premium ist, werden zurückgegeben.
🔹 ODER-Verknüpfung (or)
Section titled “🔹 ODER-Verknüpfung (or)”Mindestens eine der Bedingungen muss zutreffen.
Beispiel:
Section titled “Beispiel:”{ "filter": { "or": [ { "status": "inactive" }, { "status": "pending" } ] }}➡️ Gibt alle Datensätze zurück, bei denen status = inactive oder status = pending ist.
🔹 Kombinierte Verknüpfung (and + or)
Section titled “🔹 Kombinierte Verknüpfung (and + or)”Du kannst Bedingungen auch verschachteln, um komplexere Filter zu bauen.
Beispiel:
Section titled “Beispiel:”{ "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.