Forum Discussion

HugoAPereira's avatar
HugoAPereira
Helper I
6 years ago
Solved

REST API Paging Power Query

Good afternoon. I need help to list all the data on my website and that they have several pages. ImkeF can you help me?  let Source = Json.Document(Web.Contents(url, [Headers=[Authorization="x...
  • ImkeF's avatar
    ImkeF
    6 years ago

    oops - I think it should be this:

     

    let
        Source = Json.Document(Web.Contents("https://api.shopk.it/v1/order/?X-API-KEY=<token>")),
        ToTable = Record.ToTable(Source), //
        Result = Table.RemoveLastN(ToTable,1),
        NextPage = Source[paging][next],
        Custom1 = List.Generate( () =>
            [ResultRecord = Source, NextPage = NextPage],
            each [ResultRecord][paging][next] <> null,
            each [
                ResultRecord = Json.Document(Web.Contents([NextPage])),
                Result = Table.RemoveLastN(Record.ToTable(ResultRecord),1),
                NextPage = ResultRecord[paging][next]
            ]
       //    ,each [Result]
        )
    in
        Custom1
  • ImkeF's avatar
    ImkeF
    6 years ago

    Hi HugoAPereira ,

    pleased to see 🙂

     

    You simply have to append the first Result to what the List.Generate returns like so:

     

    let
        Source = Json.Document(Web.Contents("https://api.shopk.it/v1/order/?X-API-KEY=<token>")),
        ToTable = Record.ToTable(Source), //
        Result = Table.RemoveLastN(ToTable,1),
        NextPage = Source[paging][next],
        Custom1 = List.Generate( () =>
            [ResultRecord = Source, NextPage = NextPage],
            each [ResultRecord][paging][next] <> null,
            each [
                ResultRecord = Json.Document(Web.Contents([NextPage])),
                Result = Table.RemoveLastN(Record.ToTable(ResultRecord),1),
                NextPage = ResultRecord[paging][next]
            ]
       //    ,each [Result]
        ),
        Append = Result & Custom1 
    in
        Append

     

  • ImkeF's avatar
    ImkeF
    6 years ago

    Hi HugoAPereira 

     

    try this:

     

     

    let
        Source = Json.Document(Web.Contents("https://api.shopk.it/v1/order/?X-API-KEY=<token>")),
        ToTable = Record.ToTable(Source), //
        Result = Table.RemoveLastN(ToTable,1),
        NextPage = Source[paging][next],
        Custom1 = List.Generate( () =>
            [ResultRecord = Source, NextPage = NextPage],
            each [NextPage] <> null,
            each [
                NextPage = [ResultRecord][paging][next],
                ResultRecord = Json.Document(Web.Contents(NextPage)),
                Result = Table.RemoveLastN(Record.ToTable(ResultRecord),1)
     
            ]
       //    ,each [Result]
        ),
        Append = Result & Custom1 
    in
        Append