Paramètres de requête
Chaque point de terminaison API prend en charge les options suivantes au moyen de paramètres de requête URL :
Requête | Valeur par défaut | Exemple | Description |
|---|---|---|---|
texte |
| Recherche et filtre le contenu en fonction du texte fourni | |
limite | 10 |
| Limite le nombre total d’entrées pouvant être récupérées depuis le point de terminaison. La valeur maximale est de 20. |
décalage | 0 |
| Ajuste le décalage des éléments renvoyés |
orderBy | createdAt |
| Vous pouvez trier les entités en choisissant un champ du modèle selon lequel effectuer le tri |
filtre |
| Il est possible de créer et de combiner des filtres pour affiner le contenu reçu. | |
champs |
| Ideanote nécessite que l’utilisateur du API spécifie une liste de champs à renvoyer, séparés par des virgules. Cela permet de garantir les performances et de rendre possible le remplissage des entités imbriquées. |
Champs
Ideanote nécessite que l’utilisateur du API spécifie une liste de champs à renvoyer, séparés par des virgules. Cela permet de garantir les performances et de rendre possible le remplissage des entités imbriquées.
Remplissage des champs directs
?fields=id,title,question renverra la structure JSON suivante :{
"id": "abc",
"title": "Title",
"question": "Question"
}Il est possible de remplir directement les champs de l’entité (voir l’exemple).
Vous trouverez un aperçu des champs que vous pouvez remplir pour chaque entité. Par exemple, vous trouverez tous les champs de l’entité Mission ici
Renseignement de champs imbriqués (syntaxe à points)
?fields=id,title,cover.kind,cover.url.original renverra la structure JSON suivante :{
"id": "abc",
"title": "Title",
"cover": {
"kind": "IMAGE",
"url": {
"original": "https://...."
}
}
}Il est possible de renseigner des champs imbriqués à l’aide d’une syntaxe à points, telle que cover.url.original (voir l’exemple).
Renseignement de plusieurs champs imbriqués (syntaxe à accolades)
?fields=id,title,cover.{url.original,kind,fileName} renverra la structure JSON suivante :{
"id": "abc",
"title": "Title",
"cover": {
"kind": "IMAGE",
"fileName": "my-file.jpg",
"url": {
"original": "https://...."
}
}
}Afin de renseigner plus facilement plusieurs champs d’entités imbriquées, il est possible de les renseigner en combinant plusieurs champs imbriqués, tels que cover.{url.original, kind, fileName} (voir l’exemple).
Tri
Vous pouvez trier les entités en choisissant un champ du modèle selon lequel effectuer le tri
Tri par propriété avec ordre croissant implicite
?orderBy=firstName renverra la structure JSON suivante :[{ "firstName": "A" }, { "firstName": "B" }, { "firstName": "C" }]Il est possible de trier selon n’importe quelle propriété d’un modèle, telle que createdAt, title, id, etc., en indiquant simplement le nom de cette propriété dans le paramètre de requête orderBy. Cela triera les entrées par ordre ascending (voir l’exemple)
Tri par propriété avec ordre croissant explicite
?orderBy={"key": "firstName", "direction": "DESC"} renverra la structure JSON suivante :[{ "firstName": "C" }, { "firstName": "B" }, { "firstName": "A" }]Fournir une structure JSON avec une propriété key et une propriété direction, telle que {"key": "createdAt", "direction": "DESC"}, vous donne un contrôle maximal sur le tri.
- key : propriété selon laquelle effectuer le tri. Exemples :
createdAt,title,id. - direction : ordre de tri des entrées. Peut être :
DESC: les entrées seront triées par ordre décroissant.ASC: les entrées seront triées par ordre croissant.
Filtres
Il est possible de créer et de combiner des filtres afin de restreindre le contenu reçu.
Filtrage simple avec l’opérateur EQUALS implicite
Le filtre suivant sélectionnera les entités dont la propriété title correspond exactement à la valeur « How might we improve our products » :
?filter={"title":"How might we improve our products"}
Filtrage simple avec un opérateur explicite
Le filtre suivant sélectionnera les entités dont la propriété title contient la sous-chaîne « How might we ».
?filter={"title":{"op": "INCLUDES", "value": "How might we"}}
Voici la liste de tous les opérateurs disponibles :
Opérateur | Description | Exemple |
|---|---|---|
EST ÉGAL À | Vérifie s’il existe une correspondance exacte |
|
NOT_EQUALS | La négation de l’opérateur EQUALS | Consultez EQUALS pour un exemple comparable. |
DANS | Vérifie si la propriété est égale à l’une des valeurs fournies |
|
IS_NULL | Vérifie si une valeur peut être nulle |
|
IS_NOT_NULL | La négation de l’opérateur IS_NULL | Voir IS_NULL pour un exemple comparable. |
INCLUDES | Vérifie si la propriété inclut la valeur fournie |
|
NOT_INCLUDES | La négation de l’opérateur INCLUDES | Voir INCLUDES pour un exemple comparable. |
INCLUDES_ELEMENT | Vérifie si une propriété JSON (telle qu’un tableau) inclut la valeur fournie |
|
NOT_INCLUDES_ELEMENT | La négation de l’opérateur INCLUDES_ELEMENT | Voir INCLUDES_ELEMENT pour un exemple comparable. |
INFÉRIEUR À | Chacun de ces éléments effectue une comparaison avec la valeur actuelle (généralement une date ISO ou un nombre). |
|
Filtrage groupé
Le filtre suivant sélectionne les entités créées après 2020-01-01 OR les entités pour lesquelles la propriété id est soit "6b8e6531-cf07-4d1f-be39-68ea22d88c0e" soit "99e5d8b8-c477-4ce9-812e-9822d18adb99" en combinant deux filtres séparés par un OR opérateur.
?filter={ "op":"or", "filter":[ { "createdAt": {"op":"GREATER_THAN_OR_EQUALS","value":"2020-01-01T00:00:00.000Z"} }, { "id": { "op":"IN", "value":[ "6b8e6531-cf07-4d1f-be39-68ea22d88c0e", "99e5d8b8-c477-4ce9-812e-9822d18adb99" ] } } ] }
Filtrage combiné et approfondi
Le filtre suivant combine un AND externe avec un OR interne. Il sélectionne les entités pour lesquelles la question contient « How might we », AND (soit le statut est « OPEN », soit le titre est « My Mission »)
?filter={"op":"and","filter":[{"question":{ "op":"INCLUDES","value":"How might we"}},{"op":"or","filter":[{"status":"OPEN" },{"title":"My Mission"}]}]}