Versions Compared

Key

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

Table of Contents
outlinetrue
stylenone

Yderligere dokumentation

https://datafordeler.dk/dataoversigt

http://grunddatamodel.datafordeler.dk/

Tjenesternes struktur og opbygning

...

[Navngivning af metoder adskiller sig fra Datafordelerens retningslinjer (se datafordeler.dk), idet specifikationerne for CPR's tjenester er udarbejdet før udgivelse af retningslinjerne.]

Eksempel på count: count.json

PersonFull.jsonPersonMedium.json og PersonSmall.json er hentet fra CPR's demodata (test04) den 14. februar 2020. Der er ikke garanti for, at eksemplerne over tid vil matche JSON schermesschemes.

Tjenesternes output (oplysninger der videregives)

...

Anvendelse af query params (parametre)

Query params anvender GET parametre anvendes i en HTTP GET request, og indgår således i HTTP requestens query string som field-value pairs.

Ønskes alle oplysninger på én person med pnr = 1111111111 anvendes PersonFullListSimple med query param pnr.personnumer.eq:

...

Ønskes alle oplysninger på flere personer anvendes, som indentificeres ved anvendelse af personnummer, anvendes:

Code Block
languagexml
https://.../CprPersonFullSimple/1/rest/PersonFullListSimple?pnr.personnummer.wi=1111111111|2222222222|3333333333

...

CPR's tjenester på Datafordeleren understøtter  understøtter ikke, at det samme query param field anvendes flere gange i samme query string.

...

Hver query param tilføjes endvidere et subfix i form af et operatornavn. Eksempelvis

Code Block
languagejava
pnr.personnummer.eq

pnr.personnummer.wi

...

Ikke alle query params vil understøtte alle operatorer. Eksempelvis vil kun query params, hvor value skal kunne kan parses til en integer eller date, kunne anvendes med gt (greather than).

...

Der er principielt ikke begrænsninger på, hvor mange query params , der kan anvendes i en request. Dog har Datafordeleren en max limit size  i bytes på HTTP requestens størelse. HTTP requests med en query string større end max limit size vil resultere i en fejl. Se dokumentation herom på datafordeler.dk

...

Code Block
languagejs
titleHent alle personer bopælsregistreret på vejen Hammersholt Byvej i Allerød Kommune eller Hillerød Kommune
linenumberstrue
/**
* 201 er kommunekoden for Allerød
* 219 er kommunekoden for Hillerød
* Kommunekoden er en optimeret query param
* aktuel betyder, at det er den p.t. gældende registrering.
**/
query = "?"
		+ "adropl.status.eq=aktuel"
		+ "&cadr.cprkommunekode.wi=201|219"
		+ "&cadr.vejadresseringsnavn.eq=Hammersholt%20Byvej";

//Svarer til
query = (aktuelAdresseAlleroedKommune OR aktuelAdresseHilleroedKommune) AND aktuelAdresseVejHammersholtByvej;
;

//Svarer til
query = (aktuelAdresseAlleroedKommune OR aktuelAdresseHilleroedKommune) AND aktuelAdresseVejHammersholtByvej;


Code Block
languagejs
titleHvor mange personer bor aktuelt på en specifik adresse
linenumberstrue
/**
* Status bopael_i_danmark eller bopael_i_danmark_hoej_vejkode betyder, at personen har bopæl i en dansk kommune. Statusoplysningen er ikke histroisk, hvorfor det ikke er nødvendigt at anvende i form af aktuel, histroisk mv.
* count=true betyder, at der kun returneres antal.
**/
query = "?"
		+ "person.foedselsdato.lt=2008-01-01"
		+ "&person.foedselsdato.ge=2007-01-01"
		+ "&person.status.wi=bopael_i_danmark|bopael_i_danmark_hoej_vejkode"
		+ "&count=true

//Vil returnere ANTAL personer, som er født i 2007 og som har bopæl i en dansk kommune


Code Block
languagejs
titleHvor mange personer bor aktuelt på en specifik adresse
linenumberstrue
/**
* 201 er kommunekoden for Allerød
* Vejkoden 999 er fiktiv
* Kombinationen af en vejkode og kommunekode udgør en unik identifikation af en vej.
* count=true betyder, at der kun returneres antal.
**/
query = "?"
		+ "adropl.status.eq=aktuel"
		+ "&cadr.cprkommunekode.eq=201"
		+ "&cadr.cprvejkode.eq=999"
		+ "&cadr.husnummer.eq=004"
		+ "&count=true";

//Vil returnere ANTAL personer på vejen med vejkode 999 med husnummer 4
//Bemærk, at hvis det er en etageejendom vil dette eksempel returnere antal personer i alle lejligheder.
//Bemærk også, at husnr altid angives med foranstillede 0'er, således at et husnr er opbygget af 3 cifre og optionelt et bogstav efterfølgende. Husnr 041 svarer til nr. 41, 004 til 4 , 009A til 9A.

...

Det bemærkes, at retursvaret fra datafordeleren ikke indeholder information om count, page og pagesize. Det er således op til anvenderen selv at holde styr på, hvilken page , der returneres.

Idet count ikke indgår i retursvaret kan det overvejes først at kalde tjenesten med param count=true, hvorved retursvaret kun indeholder count. Derved kan det regnes ud, hvor mange gange tjenesten skal kaldes, således at alle personer, der opfylder søgekriterierne, returneres. Dvs. antal_kald = Math.ceil(count / pagesize). Det bemærkes, at en tjeneste kan kaldes asynkront, hvorved den samlede svartid givetvis vill kunne forbedres.

...

maksimalt returnere en liste med ét objekt/én person (pagesize=1). Bemærk, at der ikke er garanti for, at det er personen med pnr 2222222222 (Bemærk: Første page er tilsyneladende 1, ikke 0 - læs mere herom på datafordeler.dk).

For det første er der ikke garanti for i hvilken rækkefølge en liste af parametre behandles på Datafordeleren. For det andet kan det være, at der ikke findes en person med pnr = 1111111111 , hvorved personen med pnr = 2222222222 (hvis denne person findes) vil fremgå på første page.

...

Navngivningen af query params tager udgangspunkt i CPR's domænemodel. Følgende query params kan benyttes (paramsForTabelSimple.csv):


Csv
outputwiki
autoNumberSorttrue
delimitertab
autoNumbertrue
encodingUTF-8
script^attacment/paramsForTabelSimple.csv
sortIcontrue

...

Følgende query params kan benyttes (paramsForTabelComplete.csv):

(Sorter ved at klikke på kolonne overskrifter)

...