
Besoin d’aide – API et pagination
Besoin d’aide – API et pagination
Samuel a répondu Il y a 9 mois, 3 semaines 3 Membres · 17 Réponses
Pour moi votre fonction liste doit être appeler dans une nouvelle colonne
List.Numbers(0,nombretotalElement / incrementation ,incrementation).
Le nombre totale d’elements peut s’obtenir avec un premier appel à votre API
Incrementation je pense que c’est claire pour vous si j’ai bien compris l’incrementation est de 30
soit page 1 = 1 à 30
Page 2 = 31 – 60 etc
la fonction liste vous donnera donc une colonne ayant pour chaque ligne
0,
30
Ensuite il vous faudra ajouter une colonne personnalisé qui appelle la function
(NumPage as text) => let
Source = Json.Document(Web.Contents(“https://votre.api.com/”,
[
RelativePath=”/chemin/relatif/?numpage=”&NumPage
]))
in
#”Source”Vous pourrez remplacer NumPage par la colonne qui vous ramenera le numéro 0, 30 etc
Par cconséquent cette appelle fera un appele de votre api avec achque fois un nombre de page incrémentiel
Bonjour Jonathan,
Désolé pour la longue absence, j’ai avancé sur mon loop API et je vous explique.
- J’ai créé une fonction appelé (GetPage) :
(page) =>
let
Source = Json.Document(Web.Contents(“Mon API?page=” & Text.From(page),
[Headers=[#”X-Gravitee-Api-Key”=”API KEY”]]))
in
Source- J’ai créé une table qui me retourne une nombre entier (MaxPage) :
let
Source = Json.Document(Web.Contents(“Mon API”,
[Headers=[#”X-Gravitee-Api-Key”=”API KEY”]])),
#”hydra:view” = Source[#”hydra:view”],
#”Converti en table” = Record.ToTable(#”hydra:view”),
#”Lignes filtrées” = Table.SelectRows(#”Converti en table”, each ([Name] = “hydra:last”)),
#”Valeur remplacée” = Table.ReplaceValue(#”Lignes filtrées”,”/vehicules/v1/vehicules?page=”,””,Replacer.ReplaceText,{“Value”}),
#”Colonnes supprimées” = Table.RemoveColumns(#”Valeur remplacée”,{“Name”}),
#”Type modifié” = Table.TransformColumnTypes(#”Colonnes supprimées”,{{“Value”, Int64.Type}}),
Value = #”Type modifié”{0}[Value],
#”Valeur absolue calculée” = Number.Abs(Value)
in
#”Valeur absolue calculée”- J’ai enfin créé une table (Vehicule) :
let
Source = List.Generate(
() => [page = 1, vehicule = Json.Document(Web.Contents(“Mon API?page=” & Text.From(page),
[Headers=[#”X-Gravitee-Api-Key”=”API KEY”]]))],
each [page] <= 61, (Ici quand je mets 61 j’obtiens bien la liste que je souhaite, par contre quand je mets MaxPage que j’ai créé précédemment pour automatiser, ça ne marche pas, pourtant c’est bien une valeur nombre entier).
each [vehicule = GetPage([page]), page = [page] +1 ]
)
in
SourceC’est là que je pêche, je ne comprends pas…..
Merci à vous !
Connectez-vous pour répondre.