Le paramètre $filter
Le paramètre $filter
correspond au plus puissant paramètre OData. Il compte de nombreux opérateurs.
Il s'agit d'opérateurs logiques et mathématiques intégrés, utilisés en combinaison avec des propriétés dans un ensemble de résultats. Ils peuvent être utilisés pour créer des expressions de filtre. Certaines conventions doivent être respectées afin d'utiliser correctement les expressions
$filter
. Les propriétés sont les champs inclus dans la réponse API. Voici quelques lignes directrices :- Afin de savoir quelles propriétés vous sont disponibles dans un certain appel d'API, consultez le modèle de la classe Response.
- Les chaînes doivent être encadrées par des apostrophes, mais ce n'est pas le cas pour les propriétés, opérateurs et mots-clés :
$filter=Name eq 'Altoro'
- Parfois, la propriété que vous souhaitez utiliser dans votre expression est imbriquée dans une autre propriété. Par exemple, la propriété Examiner l'objet JSON renvoyée dans l'appel
Get /api/v2/scans
contient un objet JSON imbriqué dans sa propriétéLatestScanExecution
. Pour utiliser ce champ imbriqué, utilisez une barre oblique. Par exemple, pour renvoyer uniquement les examens dans lesquels le statut de la dernière exécution de l'examen est Prête, utilisez une barre oblique :
Cela peut également être utilisé dans d'autres paramètres OData, tels que :$filter=LatestScanExecution/Status eq 'Ready'
$orderby=LastSuccessfulExecution/ScanEndTime desc)
- Si les dates sont utilisées dans des comparaisons, la date doit être au format EDM (par exemple,
2018-06-26T09:13:28
). Ainsi, pour obtenir des examens créés après une certaine date, vous pouvez comparer le champCreatedAt
avec une certaine date, en convertissant la chaîne de date EDM en objet DateTime :$filter=CreatedAt gt DateTime'2018-07-31T07:30:00'
Opérateurs
Les exemples ci-dessus utilisent des opérateurs tels que
eq
pour « égal à » et gt
pour « supérieur à ». Voici certains opérateurs logiques/mathématique communs. Pour une liste plus complète des opérateurs OData, consultez les spécifications OData v3 dans les références.Grouper | Opérateur | Signification |
---|---|---|
Relationnel | gt |
supérieur à |
ge |
supérieur ou égal à | |
lt |
moins de | |
le |
inférieur ou égal à | |
isof |
test du type | |
Egalité | eq |
égal à |
ne |
différent de | |
ET conditionnel | and |
ET logique |
OU conditionnel | or |
OU logique |
Opérateurs lambda
Les opérateurs lambda offrent un filtrage plus avancé des expressions. Il existe deux opérateurs lambda :any
et all
. Ils sont utilisés dans les champs contenant des matrices de valeurs sur lesquelles vous devez travailler. any
est considéré comme « True » si au moins un résultat est considéré comme « True » dans son expression. Tous les résultats doivent être considérés comme « True » par l'opérateur all
pour qu'il soit lui aussi « True ».Par exemple, pour
/api/v2/Apps
API, chaque application est renvoyée comme une matrice de ComplianceStatuses, une pour chaque stratégie associée à l'application.- Pour renvoyer toutes les applications qui n'ont pas une règle ayant échoué :
$filter=ComplianceStatuses/all(d:d/Compliant eq true)
- Pour renvoyer toutes les applications qui ont au moins une règle ayant échoué :
$filter=ComplianceStatuses/any(d:d/Compliant eq false)
Opérateurs de chaîne
Les opérateurs de chaîne peuvent être utiles, car la plupart des cas d'utilisation n'impliquent pas des chaînes étant exactement égales. En règle générale, vous avez besoin de fonctions de chaîne telles quesubstring
ou endswith
. Ces fonctions sont incluses dans OData. La liste suivante provient des spécifications OData.fonctions des chaînes de caractères | Exemple | Signification |
substringof |
substringof('Altoro',Name) |
Renvoie "True" si la chaîne contient la sous-chaîne. |
endswith |
endswith(Name,'Mutual') |
Renvoie "True" si la chaîne termine par la sous-chaîne. |
startswith |
startswith(Name,'Altoro') |
Renvoie "True" si la chaîne commence par la sous-chaîne. |
length |
length(Name) gt 10 |
Renvoie la longueur de la chaîne (ou du tableau) |
indexof |
indexof(Name,'Altoro') eq 1 |
Renvoie l'index du début de la sous-chaîne |
substring |
substring(Name,1) eq 'toro Mutual' |
Renvoie la chaîne commençant au niveau de l'index. |
tolower |
tolower(Name) eq 'altoro mutual' |
Convertit la chaîne en caractère minuscule. |
toupper |
toupper(Name) eq 'ALTORO MUTUAL' |
Convertit la chaîne en caractère majuscule. |
trim |
trim(Name) eq 'Altoro Mutual' |
Supprime les espaces en début et fin de chaîne. |
concat |
concat(Name,' Financial') eq 'Altoro Mutual Financial' |
Concatène deux chaînes. |
Fonctions de date spécifiques
Ces fonctions renvoient principalement des parties spécifiques de dates, telles que le jour du mois d'un objet de date.Fonction de date | Exemple |
year |
year(ScanEndTime) eq 0 |
month |
month(ScanEndTime) eq 12 |
day |
day(ScanEndTime) eq 8 |
hour |
hour(ScanEndTime) eq 1 |
minute |
minute(ScanEndTime) eq 0 |
second |
second(ScanEndTime) eq 0 |
Fonctions mathématiques
Fonctions mathématiques | Signification |
round |
Arrondi à l'entier le plus proche |
floor |
Arrondi à l'entier inférieur le plus proche |
ceiling |
Arrondi à l'entier supérieur le plus proche |