Skip to end of banner
Go to start of banner

Data ophalen in delen

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Soms geven API’s niet alle regels terug, maar bijvoorbeeld alleen de eerste honderd regels. Om deze reden is het dan nodig om de data op te halen in delen totdat alle regels opgehaald zijn. Wanneer een API slechts een deel van de regels in één keer aanbiedt zal er in de response vaak een property te vinden zijn op basis waarvan een nieuw verzoek kan worden samengesteld.

Vanuit het bouwblok waarmee je data op kan halen zijn twee onderdelen beschikbaar waar informatie uitgehaald kan worden. Dit kan bijvoorbeeld een bepaalde response header zijn, maar ook een property uit de response body.
Deze twee onderdelen zijn:

In de invoervelden van het type waarde of berekening kunnen deze onderdelen vervolgens gebruikt worden (in het berekeningen gedeelte). Voorbeelden hiervan zijn response.Headers["Content-Type"] en responseResult.total_items.

Voorbeeld Mailchimp data ophalen in delen.

Mailchimp heeft een API die niet standaard alle regels aanbiedt, hierbij dien je dus zelf door het resultaat heen te lopen om alle regels op te halen. De manier om bijvoorbeeld alle members uit een list op te halen ziet er als volgt uit:

https://{mailchimpServer}/3.0/lists/{listId}/members?count={number_of_rows}&offset={offset}

Hierbij is {mailchimpServer} de specifieke Mailchimp server, {listId} de ID van de lijst die je op wil halen, {number_of_rows} het aantal regels dat in één keer opgehaald wordt, en offset het paginanummer (beginnend bij 0).

Het bouwblok in U-Turn Studio ziet er als volgt uit:

image-20240221-122034.png

Er zijn drie query parameters aanwezig, list_id, count en offset. De query parameter ‘count’ is gevuld met de koppelingsvariabele {{items_per_page}}, hierin staat het aantal per pagina:

image-20240221-122320.png

De query parameter offset is gevuld met de volgende berekening:

if 'offset' not in locals():
    offset = 0
    page_number = 0

offset

In het onderdeel ‘Ophalen in delen’ staat het tweede deel van de berekening, hiermee wordt bepaald wanneer alle beschikbare resultaten opgehaald zijn.

Het invoerveld voor Ophalen in delen is gevuld met de volgende berekening:

if 'offset' not in locals():
    offset = 0
    page_number = 0

total_items = responseResult.total_items
resultIteration = False
items_per_page = {{items_per_page}}

if(total_items!=None):
    total_items_numeric = int(total_items)
    page_number+=1
    offset = page_number*int(items_per_page)

    if offset<total_items_numeric:
        resultIteration = True
    else:
        resultIteration = False

resultIteration
  • No labels