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-toolsPoetry
Terminal
poetry add dapla-suv-toolsOpprette klient
For å kunne bruke pakken må du importere klienten:
notebook
from dapla_suv_tools.suv_client import SuvClient
client = SuvClient()Paginering
For å sette opp paginering må du importere PaginationInfo
notebook
from dapla_suv_tools.pagination import PaginationInfoPaginering 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 5000 i alle forespørsler. Hvis man angir en høyere verdi vil forespørselen feile eller bli begrenset til 5000 poster per side.
Enkel bruk av paginering
I dette eksempelet brukes paginering for å hente en spesifikk side med et gitt antall elementer.
notebook
p_info = PaginationInfo(page=1, size=5)
result = client.get_skjema_by_ra_nummer(
ra_nummer="RA-0666A3", pagination_info=p_info
)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
page = 1
size = 100
all_records = []
while True:
p_info = PaginationInfo(page=page, size=size)
response = client.get_utvalg_from_sfu(
delreg_nr=49430324,
ra_nummer='RA-0666A3',
pagination_info=p_info
)
records = response
all_records.extend(records)
if len(records) < size:
break
page += 1
print(f"Totalt antall poster: {len(all_records)}")
)Dette sikrer at alle poster hentes når datasettet går over flere sider.