Besoin d’aide – API et pagination

  • Brice

    Membre
    10 juin 2024 à 8h28

    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

  • Samuel

    Membre
    14 juin 2024 à 11h12

    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
    Source

    C’est là que je pêche, je ne comprends pas…..

    Merci à vous !

    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Samuel.
    • Cette réponse a été modifiée Il y a 5 mois, 1 semaine par  Samuel.
Page 2 sur 2

Connectez-vous pour répondre.