Graph API a práce s @odata.nextLink
Zde je příklad, kdy Graph API vrátí nadlimitní množství odpovědí (přesáhl jsem limit 100 objektů v odpovědi). Následující kód bude zpracovávat každou odpověď a ověřovat, zda návratová data obsahují @odata.nextLink, což poukazuje na to, že návratová data opět přesáhly limit. Takto skript postupně vytahuje dávky dat dokud návratová data obsahuji @odata.nextLink. Co teprve, když začně MS Graph API s throttlingem, to už je pak horší :). Pro základní "domácí žvýkání" to ale bude stačit.
$allusers=@()
$users = Invoke-RestMethod -Headers @{Authorization = "Bearer $($token.AccessToken)" } -Uri 'https://graph.microsoft.com/v1.0/users' -Method Get
$allusers = $allusers + $users.value
while($users.'@odata.nextLink' -ne $null)
{
$users = Invoke-RestMethod -Headers @{Authorization = "Bearer $($token.AccessToken)" } -Uri $users.'@odata.nextLink' -Method Get
$allusers = $allusers + $users.value
}
#Returns users from aggregated varriable
$allusers