Pagination
Dans ce guide, nous allons voir comment gérer des réponses paginées lors d'une requête GET à l'API.
Par défaut, toutes les réponses sont composées d'une liste de maximum 100 éléments. Si vous le souhaitez, vous pouvez ajuster cette valeur jusqu'à 1000 en ajoutant un paramètre limit
à votre requête.
Quand l'API retourne une liste, la pagination est incluse, peu importe la taille de la liste. Dans une réponse paginée, les objets sont inclus sous le champ data
et un champ metadata
est présent à la racine. Dans cet objet, nous pouvons voir la taille totale de la portion de donnée à laquelle on souhaite accéder via totalCount
et notre position dans la liste via skip
.
Lorsque vous passez le paramètre skip
dans une requête, la réponse retournée débutera après le nombre d'élément indiqué.
Example de pagination
Dans cet exemple, nous listons les évènements de notre oganisation. Nous souhaitons commencer à partir du 10ème élément. Comme la liste complète est constituée de 13 éléments, l'API nous retourne les 3 derniers. Nous pouvons remarquer que la somme de skip
et de limit
est supérieur à totalCount
, et que nous avons donc atteint la fin de la liste.
- Name
limit
- Type
- integer
- Description
Le nombre total de documents à retourner.
- Name
skip
- Type
- integer
- Description
Le nombre de documents à ignorer avant de commencer la liste.
- Name
sort
- Type
- string
- Description
Permet d'ordonner les documents selon un champ et un sens spécifique via
:asc
ou:desc
- Name
[field]
- Type
- string
- Description
Permet de filter les documents selon les valeurs de certains de leur champ.
Vous pouvez filter sur plusieurs champs à la fois et avez accès à une multitude d'opérateurs.
Le filtrage peut accéder à des champs imbriqués via.
.placeId=6502c3aa54d67d2673639eb2&collectedAmounts.funds=gt:10000
Pagination manuelle avec cURL
curl -G "https://api.shunter.fr/v1/organizers/:_id/events?limit=10&skip=10" \
-H "Authorization: X-API-KEY {YOUR_API_KEY}" \
Réponse paginée
{
"metadata": {
"totalCount": 13,
"skip": 10,
"limit": 10,
"sort": "_id:asc",
"filters": {},
"search": ""
},
"data": [
{
"_id": "6284fc540000011dfcca3b15",
// ...
},
{
"id": "6283868c0000011dfcca3174"
// ...
},
{
"id": "627928940000011dfcca4ee3"
// ...
}
]
}
Opérateurs de filtrage disponibles
Vous pouvez utiliser une multitude d'opérateurs pour filtrer les documents selon leurs champs. Voici une liste des opérateurs disponibles
L'utilisation des opérateurs se fait en ajoutant opérateur:
avant la valeur recherchée. Par exemple, pour filtrer les évènements dont le champ collectedAmounts.funds
est supérieur à 10000, vous pouvez utiliser collectedAmounts.funds=gt:10000
.
- Name
eq
- Type
- string
- Description
Égal à
- Name
ne
- Type
- string
- Description
Différent de
- Name
gt
- Type
- string
- Description
Supérieur à
- Name
gte
- Type
- string
- Description
Supérieur ou égal à
- Name
lt
- Type
- string
- Description
Inférieur à
- Name
lte
- Type
- string
- Description
Inférieur ou égal à
- Name
in
- Type
- string
- Description
Présent dans
- Name
nin
- Type
- string
- Description
Absent de
- Name
size
- Type
- string
- Description
Taille de
- Name
exists
- Type
- string
- Description
Existe
- Name
search
- Type
- string
- Description
Recherche en texte intégral, ne prend pas en compte la casse.