Skip to end of banner
Go to start of banner

Bron data in segmenten ophalen

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 3 Next »

Het kan voorkomen dat een externe bron de gewenste data niet in één keer aan kan leveren, omdat er wellicht (i.k.v. performance en hoeveelheid data) een beperking zit van bijvoorbeeld 1000 resultaten per keer.

In zo’n geval heeft de externe bron meestal de mogelijkheid om in de aanroep (URL) te specificeren dat je een specifiek segment/pagina wilt ophalen van de data. U-Turn ondersteunt de mogelijkheid om dit bij een bron op te geven.

Voorbeeld 1 : Indicatie van meer data in de header van de response van de externe bron

Stel we hebben een externe bron die in de url parameters ondersteunt voor pagina & aantallen per pagina. En via een statuscode 206 (= Partial Content) aangeeft dat er nog meer data beschikbaar is. In zo’n situatie wil je de externe bron net zo lang aan blijven roepen totdat alle data opgehaald is.

Voor dit voorbeeld gebruiken we :

Welke stappen dien je in deze situatie te ondernemen:

  • Ga naar het bewerk scherm van de betreffende bron

  • Bewerk het veld 'Url'

page_size = 1000

if 'page_number' not in locals():
    page_number = 0
    
'https://www.mooqe.it/dummy-api/incidents?page_number={page_number}&page_size={page_size}.format(page_number = page_number, page_size = page_size)
  • Bewerk het veld ‘Loop partial result’

if FlowComponent.StatusCode == 206:
    page_number += 1
    result = False
else:
    result = True
result

LET OP:

Zolang de formule uit het veld ‘Loop partial result’ een waarde True teruggeeft zal de Url van de bron aangeroepen blijven worden.

Wees dus extra alert om te voorkomen dat er een oneindige loop ontstaat!

Voorbeeld 2 : Resultaat van de bron bevat informatie van het totaal aantal resultaten

Stel we hebben een externe bron die in de url parameters ondersteunt voor pagina & aantallen per pagina.
Deze externe bron geeft in zijn response informatie over het totaal aantal resultaten dat aangeleverd kan worden. In zo’n situatie moet er dus beken gaan worden op basis van de huidige opgevraagde pagina en het het aantal resultaten per pagina of er nog extra aanroepen naar de bron gedaan moeten worden.

Voor dit voorbeeld gebruiken we :

Welke stappen dien je in deze situatie te ondernemen:

  • Ga naar het bewerk scherm van de betreffende bron

  • Bewerk het veld 'Url'

page_size = 1000

if 'page_number' not in locals():
    page_number = 0
    
'https://www.mooqe.it/dummy-api/incidents?page_number={page_number}&page_size={page_size}.format(page_number = page_number, page_size = page_size)
  • Bewerk het veld ‘Loop partial result’

reeds_opgehaald_aantal_items = (start + 1) * page_size 

if int(FlowComponent.requestResult['total_items']) > reeds_opgehaald_aantal_items :
	finished = False
	page_number += 1
else:
	finished = True
	
finished

LET OP:

Zolang de formule uit het veld ‘Loop partial result’ een waarde True teruggeeft zal de Url van de bron aangeroepen blijven worden.

Wees dus extra alert om te voorkomen dat er een oneindige loop ontstaat!

  • No labels