Paginer : point de terminaison API
Cette carte de fonction est uniquement disponible dans Workflows Connector Builder.
Cet exemple s'appuie sur les concepts et l'implémentation introduits dans Paginer : définir un index de page maximum.
Les comportements spécifiques de la pagination sur un point de terminaison API varient en fonction de l'API. Pour cet exemple, considérez un en-tête de lien simple qui inclut une URL pour la page d'enregistrements suivante.
Pour développer l'exercice paginer : définir un index de page maximum, ajoutez de nouvelles paires clé et valeur à l'objet de pagination :
-
url : il s'agit de l'URL complète utilisée pour récupérer la première page des enregistrements. Dans de nombreux services, cela contient à la fois une valeur limite et une valeur de décalage.
-
limit : détermine le nombre d'enregistrements à récupérer, en commençant par le décalage.
-
décalage : position dans l'ensemble de données du dernier enregistrement récupéré.
-
-
results_list : il s'agit d'une liste vide d'objets auxquels chaque page de nouveaux enregistrements est ajoutée.
-
Connexions : les informations de connexion qui sont transmises au flux d'aide. Pour inclure une connexion, cliquez sur Ajouter un événement et sélectionnez Action.
L'objet résultant ressemble à ceci :
{
"page_index": 0,
"max_page_index": 10,
"url": "https://app.scaleft.com/v1/teams/demo/projects?limit=200&offset=0",
"results_list": [],
"break": false,
"Connection":{
"blob":{
"api_key":"<apikeystring>"
}
}
}
Flux d'aide
La fonction Paginer nécessite un flux d'aide. Les entrées définies dans le flux d'aide doivent correspondre aux clés que vous avez définies dans l'objetde pagination :
-
index_page
-
max_page_index
-
pause
-
url
-
results_list
-
Connexions
Utilisez la valeur url pour appeler le service à l'aide de la fonction Requête HTTP brute. Après avoir reçu une réponse, le flux d'assistance gère les valeurs url et results_list pour préparer l'itération suivante de la fonction de pagination.
Extrayez l'en-tête link de l'objet en-têtes et la page de results de l'objet corps à l'aide des cartes objet Get.
Une fois qu'une page de résultats a été extraite de la réponse, elle doit être ajoutée aux résultats existants des itérations de pagination précédentes à l'aide de la fonction Union de liste. Reconstruisez ensuite l'objet de pagination avec les nouvelles valeurs collectées dans le flux d'assistance.
L'objet résultant ressemble à ceci :
{
"page_index": 1,
"max_page_index": 10,
"break": false,
"url": "https://app.scaleft.com/v1/teams/demo/projects?limit=200&offset=200",
"results_list": [
"1",
"2",
"3",
"4",
"5",
"..."
],
"Connection": {
"blob": {
"api_key": "<apikeystring>"
}
}
}
Enfin, vous devez déterminer la façon dont l'API indique qu'il n'y a plus de pages de résultats pour que la pagination soit interrompue. Par exemple, le service peut supprimer la clé link de l'en-tête après l'envoi de la dernière page de résultats.
Par conséquent, si la clé link est manquante ou vide, la clé break doit être supprimée de l'objet de pagination à l'aide de la fonction objet Non défini. Lorsque l'objet de pagination est renvoyé au flux parent sans la clé break, la pagination s'arrête.
Lorsque vous exécutez le flux parent, l'objet final ressemble à ce qui suit :
{
"page_index":6,
"max_page_index":10,
"url": "",
"results_list":[
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"..."
],
"Connection":{
"blob":{
"api_key":"<apikeystring>"
}
}
}