Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Het resultaat van de twee bovenstaande berekeningen is dat de query parameter ‘offset’ steeds opgehoogd wordt, totdat het aantal opgehaalde regels gelijk is aan total_items. Per API zal deze property mogelijk anders heten. Zorg dat je op regel 6 (responseResult.total_items) de waarde aanpast naar de property in de response die het aantal regels aangeeft.

Voorbeeld Microsoft Graph data ophalen in delen

De API voor Microsoft Graph is gebaseerd op oData. Volgens deze specificatie maken de gebruik van het veld nextLink welke door de API wordt teruggegeven. Bijvoorbeeld, een GET aanroep naar https://graph.microsoft.com/v1.0/users?$select=id levert het volgende resultaat op:

Code Block
languagejson
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,accountEnabled,userPrincipalName,displayName,givenName,surname,jobTitle,department,employeeId,country,mailNickname,officeLocation,employeeHireDate)",
    "@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$select=id&$skiptoken=XXNwdAoAAQAAAAAAAAAAFAAAAOzGH40ct9VKhf-XVbvCR2sBAAAAAAAAAAAAAAAAAAAXMS4yLjg0MC4xMTM1NTYuMS40LjIzMzEGAAAAAAABss7PEK4rL02gO0454kK0NwF0AAAAAQIAAAA",
    "value": [
        {
            "id": "xxb637c3-d48a-4892-8826-5e9560b17ed7",
            "accountEnabled": false,
            "userPrincipalName": "x",
            "displayName": "y",
            "givenName": null,
            "surname": null,
            "jobTitle": null,
            "department": null,
            "employeeId": null,
            "country": null,
            "mailNickname": "z",
            "officeLocation": null,
            "employeeHireDate": null
        }
    ]
}

Dit resultaat geeft de nextLink terug: https://graph.microsoft.com/v1.0/users?$select=id&$skiptoken=XXNwdAoAAQAAAAAAAAAAFAAAAOzGH40ct9VKhf-XVbvCR2sBAAAAAAAAAAAAAAAAAAAXMS4yLjg0MC4xMTM1NTYuMS40LjIzMzEGAAAAAAABss7PEK4rL02gO0454kK0NwF0AAAAAQIAAAA . Deze URL verwijst naar de volgende pagina met resultaten.

In U-Turn kunnen we niet exact deze URL overnemen in het URL veld. De query parameter “$select“ zou dan namelijk voor een tweede keer toegevoegd gaan worden. We kunnen wel de skiptoken eruit nemen en deze aan de query parameters toevoegen.

image-20240715-144238.pngImage Added

In de query parameters voegen we toe:

Code Block
languagepy
if 'skiptoken' not in locals():
    skiptoken = ''
skiptoken

...

En in het script voor het ophalen in delen:

Code Block
languagepy
def get_query_parameter(url, parameter_name):
    query_start = url.find('?')
    if query_start == -1:
        return None
    query_string = url[query_start + 1:]
    parameters = query_string.split('&')
    for param in parameters:
        key_value = param.split('=')
        if len(key_value) == 2 and key_value[0] == parameter_name:
            return key_value[1]
    return None
doPage = False
nextLink = str(responseResult['@odata.nextLink'])
skiptoken = ''
if nextLink != None and nextLink!='' :
    if 'https://graph.microsoft.com/v1.0/users' in nextLink:
        skiptoken = get_query_parameter(nextLink, '$skiptoken')
        if skiptoken != None and skiptoken!='' :
            doPage = True
doPage