Beschreibung API Filter Language
Um nach Eigenschaften der Modelle zu filtern, kann eine Kombination aus logischen und relationalen Operatoren genutzt werden.
Die Abgrenzung zwischen den logischen Operatoren wird darüber hinaus durch Klammern erreicht.
Folgender Eintrag filtert beim Kunden entweder nach 'Hans Wurst' oder nach 'Peter Wurst'
http://domain:port/api/Customers?filter=(FirstName EQ 'Hans' OR FirstName EQ 'Peter') AND LastName EQ 'Wurst'
Anzahl Datensätze - Paginierung
Standardmäßig werden bei einer Abfrage einer GET-Route, die mehr als einen Datensatz zurückgibt, 10 Datensätze pro Seite geliefert. Durch die Angabe von „Items“ ist es möglich die Anzahl der Datensätze pro Seite zu verändern. Um alle vorhandenen Datensätze abzurufen, kann der Wert auf 0 gesetzt werden. Aus Performancegründen kann es sinnvoll sein, diese Anzahl zu reduzieren. Über „Page“ wird die gewünschte Seite aufgerufen.
Dazu ein Beispiel.
Die Ergebnismenge wird in Seiten zu je 20 Datensätzen eingeteilt und die 4. Seite abgerufen.
Url:
GET http://localhost/Documents?Items=20&Page=4
Relationale Operatoren
Operator | Text | Zeichen | Beschreibung |
---|---|---|---|
EQ | Equal | = | Gleich |
NOTEQ | Not Equal | != | Ungleich |
GT | Greather Than | > | Größer als |
GE | Greather than or Equal | >= | Größer oder Gleich als |
LT | Less Than | < | Kleiner als |
LE | Less than or Equal | <= | Kleiner oder Gleich als |
CT | Contains | Enthält Zeichenkette | |
NOTCT | Not Contains | Enthält nicht Zeichenkette | |
SW | Starts With | Beginnt mit Zeichenkette | |
NOTSW | Not Starts With | Beginnt nicht mit Zeichenkette | |
EW | Ends With | Endet mit Zeichenkette | |
NOTEW | Not Ends With | Endet nicht mit Zeichenkette | |
IS NULL | Is Null | Ist leer |
Logische Operatoren
Operator | Beschreibung |
---|---|
AND | Und |
OR | Oder |
ANDNOT | Und Nicht |
ORNOT | Oder Nicht |
Formatierung von Werten
Typ | Wert |
---|---|
Zeichenketten | 'Abcdefg' |
Zahlen | 123.45 |
Boolesche Werte | 0 für false 1 für true |
Datum | '[Jahr][Monat][Tag]' z.b. '20150115' |
Uhrzeit | '[Stunde]:[Minute]:[Sekunde]' z.b. '14:35:58' |
Datum mit Uhrzeit | '[Jahr][Monat][Tag] [Stunde]:[Minute]:[Sekunde]' z.b. '20141015 09:20:35' |
Beispiele
Alle Kunden die nach dem 1.5.2014 vom Benutzer mit Kürzel 'ap' erstellt wurden.
http://domain:port/api/Customers?filter=MetaData.CreationDate GT '20140501' AND MetaData.CreationUserToken EQ 'ap'
Alle inaktiven Kunden die in Hamburg oder Berlin wohnen.
http://domain:port/api/Customers?filter=(Address.City EQ 'Hamburg' OR Address.City EQ 'Berlin') AND Inactive EQ 1
Alle Artikel deren Gewicht größer 5 und kleiner 10 ist
http://domain:port/api/Article?filter=Weight GT 5 AND Weight LT 10