dapla-suv-tools
dapla-suv-tools er en python pakke med en samling verktøy for integrering med SUV-plattformen. Pakken tilbyr verktøy for skjema administrasjon, bygging av prefill og utsending av skjema på Altinn 3 plattformen.
Dokumentasjon av pakken ligger her. Denne gir en teknisk innføring som du kan følge og kopiere kode fra. Noe demokode ligger også i repoet og kan være ett godt utgangspunkt.
Installasjon
Pip
Terminal
pip install dapla-suv-tools
Poetry
Terminal
poetry add dapla-suv-tools
Opprette klient
For å kunne bruke pakken må du importere klienten:
notebook
from dapla_suv_tools.suv_client import SuvClient
= SuvClient() client
Paginering
For å sette opp paginering må du importere PaginationInfo
notebook
from dapla_suv_tools.pagination import PaginationInfo
Paginering brukes for å hente data i mindre deler spesielt når et datasett er stort. Dette bidrar til å redusere belastningen både på klient og server, og gir bedre ytelse. Side- og størrelsesparametere sendes som en del av forespørselen.
Maksimal tillatt størrelse per side er 100
i alle forespørsler. Hvis man angir en høyere verdi vil forespørselen feile eller bli begrenset til 100 poster per side.
Enkel bruk av paginering
I dette eksempelet brukes paginering for å hente en spesifikk side med et gitt antall elementer.
notebook
= PaginationInfo(page=1, size=5)
p_info
= client.get_skjema_by_ra_nummer(
result ="RA-0666A3", pagination_info=p_info
ra_nummer )
Her hentes den første siden (page=1) med 5 elementer per side (size=5).
Hente alle data med paginering
Dette eksempelet viser hvordan man kan hente alle data ved å iterere gjennom flere sider.
notebook
= 1
page = 100
size = []
all_records
while True:
= PaginationInfo(page=page, size=size)
p_info
= client.get_utvalg_from_sfu(
response =49430324,
delreg_nr='RA-0666A3',
ra_nummer=p_info
pagination_info
)
= response
records
all_records.extend(records)
if len(records) < size:
break
+= 1
page
print(f"Totalt antall poster: {len(all_records)}")
)
Dette sikrer at alle poster hentes når datasettet går over flere sider.