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

?text=foo

Recherche et filtre le contenu en fonction du texte fourni

limite

10

?limit=20

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

?offset=10

Ajuste le décalage des éléments renvoyés

orderBy

createdAt

?orderBy=createdAt

Vous pouvez trier les entités en choisissant un champ du modèle selon lequel effectuer le tri

filtre

?filter={"title":"My Mission"}

Il est possible de créer et de combiner des filtres pour affiner le contenu reçu.

champs

?fields=id,title,question

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

{ "title": { "op": "EQUALS", "value": "How might we improve our products" } }

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

{ "id": { "op": "IN", "value": ["<guid1>","<guid2>"] } }

IS_NULL

Vérifie si une valeur peut être nulle

{ "details": { op: "IS_NULL" } }

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

{ "title": { "op": "INCLUDES", "value": "How might we" } }

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

{ "hobbies": { "op": "INCLUDES_ELEMENT", "value": "fishing" } }

NOT_INCLUDES_ELEMENT

La négation de l’opérateur INCLUDES_ELEMENT

Voir INCLUDES_ELEMENT pour un exemple comparable.

INFÉRIEUR À
INFÉRIEUR OU ÉGAL À
NON INFÉRIEUR À
NON INFÉRIEUR OU ÉGAL À
SUPÉRIEUR À
SUPÉRIEUR OU ÉGAL À
NON SUPÉRIEUR À
NON SUPÉRIEUR OU ÉGAL À

Chacun de ces éléments effectue une comparaison avec la valeur actuelle (généralement une date ISO ou un nombre).

{ "rank": { op: "LESS_THAN", value: 5000 } }

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"}]}]}