Forum Discussion

BBConsultancy's avatar
2 years ago

Infinite loop with paginated API

I try to retrieve data from a paginated API. The API handles 100 records per request at max.

 

1. I made a function (OrdersFunction) to call the API with and enter a number for 'Skip' which is the attribute to navigate through the records.

 

(Skip as number)=>
let 
getJson = Json.Document(
        Web.Contents(
            "https://api.formitable.com/api/v1.2/{UID}/order/1900-01-01/2024-12-31/"& Number.ToText(Skip) &"/100",
            [
                Headers = [#"ApiKey"="????????????????",#"Accept"="application/json"]
            ]
        )
)

in
    getJson

 

 

2. I made this code in the advanced editor of an empty query to loop through all the API calls, retrieving 100 records at a time.

 

let
Source = List.Generate(()=>
[Result = try OrdersFunction(0) otherwise null, skip=0],
each [Result]<>null,
each [Result= try OrdersFunction([skip]+100) otherwise null, skip=[skip]+100],
each [Result])

in
Source

 

 

My issue is that when I load the data, it looks like it's stuck into an infinite loop. How can I modify the code to prevent the infinite loop?

2 Replies