Private/Invoke-PaginatedRestMethod.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function Invoke-PaginatedRestMethod {
    [CmdletBinding()]
    Param(
        $Uri,
        $Method='Get',
        $Headers
    )
    begin{
        $r = $null
    }
    process {
        do {
            if ($r._links.next.href) {
                $Uri = $r._links.next.href
            }
            $r = Invoke-RestMethod -Uri "$Uri" -Method $Method -Headers $Headers
    
            $r._embedded
        } while ($r._links.next.href)
    }
}