Dit artikel beschrijft hoe je gegevens kunt filteren via de Neoforce API met behulp van een uitgebreid filtermechanisme. De API ondersteunt flexibele en krachtige filters waarmee je resultaten kunt ophalen op basis van specifieke zoekcriteria.
Je kunt filters toepassen op vrijwel elk veld binnen de beschikbare entiteiten, waaronder tickets, contracten, datasets en meer. Hiermee is het mogelijk om bijvoorbeeld records op te vragen die voldoen aan bepaalde datums, statussen of andere voorwaarden. Het filtermechanisme ondersteunt vergelijkingsoperatoren en meerdere voorwaarden tegelijk.
In dit artikel leggen we de filterstructuur uit, tonen we praktische voorbeelden en geven we tips voor het efficiënt combineren van meerdere filters in één API-aanroep.
Standaardfiltering
De oorspronkelijke schrijfwijze van het filtermechanisme is nog steeds geldig en werkt als volgt:
?filter[createdDate]=2024-12-16 14:31:26
Deze schrijfwijze filtert resultaten waarbij het veld createdDate
exact overeenkomt met de opgegeven waarde. Het is een eenvoudigere en snellere manier om filters toe te passen, zonder gebruik te maken van complexere structuren of logica.
Let op: deze vorm van filteren is altijd strict, wat betekent dat er alleen resultaten worden teruggegeven die precies overeenkomen met de opgegeven waarde. Er is dus geen ruimte voor variaties, gedeeltelijke overeenkomsten of alternatieve formaten.
In veel gevallen is deze methode echter prima geschikt — bijvoorbeeld bij het filteren op vaste waarden zoals statussen, exacte datums of unieke ID's. Voor meer geavanceerde zoekopdrachten (zoals groter dan, bevat enz.) wordt het gebruik van het uitgebreide filtermechanisme aanbevolen.
Uitgebreid filtermechanisme
Met de uitgebreide schrijfwijze kun je flexibeler filters toepassen door gebruik te maken van verschillende vergelijkingsoperatoren. Dit biedt de mogelijkheid om resultaten te zoeken die aan specifieke voorwaarden voldoen.
Schrijfwijze
?filter[veldnaam][operator]=waarde
veldnaam
: Het veld waarop je wilt filteren (bijvoorbeeldcreatedDate
).operator
: De vergelijking die je wilt maken (bijvoorbeeldeq
,lt
,bt
, enz.).waarde
: De waarde waarmee het veld moet worden vergeleken (bijvoorbeeld2024-12-16 14:31:26
).
Beschikbare vergelijkingsoperatoren
De volgende operatoren worden ondersteund:
Operator | Betekenis | Voorbeeld |
---|---|---|
eq |
Gelijk aan | ?filter[createdDate][eq]=2024-12-16 14:31:26 |
neq |
Niet gelijk aan | ?filter[createdDate][neq]=2024-12-16 14:31:26 |
lt |
Kleiner dan | ?filter[createdDate][lt]=2024-12-16 |
lte |
Kleiner dan of gelijk aan | ?filter[createdDate][lte]=2024-12-16 |
gt |
Groter dan | ?filter[createdDate][gt]=2024-12-16 |
gte |
Groter dan of gelijk aan | ?filter[createdDate][gte]=2024-12-16 |
sw |
Begint met | ?filter[naam][sw]=Jan |
nsw |
Begint niet met | ?filter[naam][nsw]=Jan |
ew |
Eindigt met | ?filter[naam][ew]=sen |
new |
Eindigt niet met | ?filter[naam][new]=sen |
ct |
Bevat | ?filter[naam][ct]=an |
nct |
Bevat niet | ?filter[naam][nct]=an |
in |
Zit in lijst | ?filter[id][in]=1,2,3 |
nin |
Zit niet in lijst | ?filter[id][nin]=4,5,6 |
bt |
Tussen | ?filter[createdDate][bt]=2024-01-01,2024-12-31 |
nbt |
Niet tussen | ?filter[createdDate][nbt]=2024-01-01,2024-12-31 |
em |
Is leeg | ?filter[veld][em]= |
nem |
Is niet leeg | ?filter[veld][nem]= |
Voorbeelden van uitgebreid filtergebruik
-
Resultaten gelijk aan een specifieke datum
?filter[createdDate][eq]=2024-12-16 14:31:26
-
Resultaten groter dan of gelijk aan een bepaalde datum
?filter[createdDate][gte]=2024-01-01
-
Resultaten tussen twee datums
?filter[createdDate][bt]=2024-01-01,2024-12-31
-
Resultaten binnen het eerste en derde kwartaal
?filter[createdDate][bt]=2024-01-01,2024-03-31;2024-07-01,2024-9-31
-
Resultaten waarvan de naam begint met een specifieke tekst
?filter[naam][sw]=Jan
-
Resultaten waarvan een veld leeg is
?filter[veld][em]=
Filteren op een Asset-veld
Om resultaten te filteren op gekoppelde assets, wordt de oude schrijfwijze gebruikt. Dit is handig als je bijvoorbeeld alle resultaten wilt zien waarbij een laptop met een specifieke ID is gekoppeld.
Schrijfwijze voor Asset-filtering
?filter[assets]=objecttype::id
Voorbeelden
-
Resultaten waarbij een laptop met ID 42 is gekoppeld:
?filter[assets]=obj_laptops::42
-
Resultaten waarbij meerdere laptops zijn gekoppeld:
?filter[assets]=obj_laptops::42;obj_laptops::43
-
Resultaten met verschillende soorten assets:
?filter[assets]=obj_laptops::42;obj_telefoons::43
Met deze schrijfwijze kun je eenvoudig filteren op gekoppelde assets door het juiste objecttype en ID op te geven. Meerdere assets kunnen worden gescheiden door een puntkomma (;
).
Backwards Compatibility
De oorspronkelijke filtervorm zonder operator blijft ondersteund. Dit betekent dat de volgende schrijfwijze nog steeds geldig is:
?filter[createdDate]=2024-12-16 14:31:26
Maar de nieuwe en uitgebreide schrijfwijze biedt meer flexibiliteit en wordt aanbevolen.