Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
| Anchor | ||||
|---|---|---|---|---|
|
Siden beskriver CPR's GraphQL custom-tjeneste til offentlige, der udstilles på Datafordeleren.
Få en introduktion til GraphQL på Datafordeleren, hvis du har brug for en generel og mere teknisk indføring i GraphQL på Datafordeleren.
Læs derudover mere om Anmodning om adgang til beskyttede registerdata.
Læs mere om CPR GraphQL i CPRs dokumentation.
Table of Contents
| Display Metadata | ||
|---|---|---|
|
Generelt for CPR PublicSector
| Version |
| ||
|---|---|---|---|
| Sikkerhedszone | 5 – Indeholder fortrolige eller følsomme data | ||
| Adgangsniveau | Bruger oprettet med MitID Erhverv, og OAuth Shared Secret eller OAuth Certifikat | ||
| GraphQL skema | https://graphql.datafordeler.dk/CPR/custom/PublicSector/<version>/schema? | ||
| Endepunkter for CPR | https://graphql.datafordeler.dk/CPR/custom/PublicSector/<version> | ||
| Dato- og tidsformat | Datoformat følger ISO 8601 Date and time format. Alle datoer skrives med andre ord i formatet yyyy-mm-ddTHH:MM:SS.ssssss, hvor tidsangivelsen kan udelades. UTC kan angives enten ved +HH:MM (2019-07-05T07:50:14.687580+01:00) eller ved at benytte Z (2019-07-05T07:50:14.687580Z) | ||
| Tjenester og entiteter | Registret har følgende specialudviklede tjeneste til offentlige, der skal anmodes om adgang til for at få adgang til CPR:
|
| Info |
|---|
Bemærk Hvis du skal have adgang til GraphQL-tjenesten CustomPublicSectorPerson, skal det være den eneste valgte tjeneste i feltet ”Entiteter og tjenester” i menuen under Anmodning i Datafordeler Administration. Ingen entiteter skal være valgt. Adgang til tjenesten CustomPublicSectorPerson giver tillige adgang til CPR_Events (hændelser) - også selvom dette ikke fremgår af feltet ”Entiteter og tjenester”. Skal du også have adgang til CPR fildownload, skal du oprette andet IT-system og anmode om dataadgang til entiteter via dette. Anmodninger bliver afslået, hvis der både er valgt GraphQL-tjenester og entiteter til Fildownload i samme anmodning, eller hvis anmodningerne kommer fra samme IT-system. |
CustomPublicSectorPerson - til offentlige
Hvis du ønsker at tilgå CPR-data hos Datafordeleren via GraphQL på vegne af en offentlig myndighed, skal du først have adgang til CPR's CustomPublicSectorPerson-tjeneste.
Adgang søges på samme måde som for andre registre med beskyttet data hos Datafordeleren.
Tjenesten vælges blot i drop-down-menuen ”Vælg entiteter og tjenester” når CPR-registeret er valgt i ”Register”-menuen i en”Dataadgang”-ansøgning.
”Dataadgang”-ansøgninger er beskrevet yderligere under Anmodning om adgang til beskyttede registerdata .
Omfang af tjenesten
Med godkendt adgang til CustomPublicSectorPerson-tjenesten, har du mulighed for at tilgå entiteten CPRCustom_PublicSectorPerson via GraphQL. Denne specialudviklede entitet giver mulighed for at tilgå en række af de almindelige entiteter fra CPR-registret og sammenstille disse, så du ikke selv behøver at tage stilling til hvordan data hænger sammen.
Bemærk at du med denne tjeneste har mulighed for at hente alle data som CPR har tilgængeligt og der derfor er et dataminimeringsansvar, som ligger hos anvenderen, i kun at hente den data der er nødvendigt for at udføre sin funktion i den tilknyttede myndighed.
Opbygning af kald via tjenesten
Ligesom i CustomPrivateSectorPerson-tjenesten kan CustomPublicSectorPerson tage en række inputparametre. Hvilke inputparametre og datafiltreringer og hvordan disse benyttes, fremgår af det tilhørende GraphQL-skema. I modsætning til den private tjeneste, er der ingen af parametrene der er obligatoriske, da du behøver ikke unikt at kunne identificere en person for at fremsøge informationer om vedkommende og tjenesten kan derfor returnere flere personer samtidig. Du kan for eksempel fremsøge adresseoplysninger for flere personer der hedder ”John Doe” samtidig ved at sende nedenstående GraphQL-query, som en POST-request til https://graphql.datafordeler.dk/CPR/custom/PublicSector/v3:
| Code Block | ||||
|---|---|---|---|---|
| ||||
query {
CPRCustom_PublicSectorPerson(
first: 3
input: { navn: { fornavne: { eq: "John" }, efternavn: { eq: "Doe" } } }
) {
nodes {
id
navne {
fornavne
mellemnavn
efternavn
}
adresseoplysninger {
cprAdresse {
daradresse
bygningsnummer
bynavn
cprkommunekode
cprvejkode
etage
husnummer
postdistrikt
postnummer
sidedoer
vejadresseringsnavn
vejnavn
}
status
virkningfra
virkningfrausikkerhedsmarkering
}
beskyttelser {
beskyttelsestype
status
virkningfra
virkningtil
}
}
}
} |
Du kan fremsøge flere personer samtidig, understøtter CustomPublicSectorPerson paging af resultaterne, så du ved almindelige query-parametre (se afsnit om paging) kan specificere hvor mange personer du ønsker returneret ved at givet kald.
Bemærk at beskyttelser-feltet altid skal inkluderes i en query og alle kald til tjenesten uden beskyttelser inkluderet i query’en vil blive afvist og intet data returneret.
Bemærk også, at alle søgninger for CustomPublicSectorPerson er case-insensitive, det vil sige at du ikke skal skelne mellem store og små bogstaver.
Noget nyt sammenlignet med de tidligere CPR-tjenester er, at det nu er muligt at filtrere på "Hændelse" og "Hændelseskoder" for den offentlige sektor. Der er introduceret fire nye parametre: haendelsekode.haendelsekode, haendelsekode.virkningfra, haendelse.forretningshaendelse og haendelse.afleveringdato.
En komplet liste over hvilke hændelseskoder og forretningshændelser der findes kan ses på CPR's egen dokumentation CPRhændelser til Datafordeleren.
Total Count
Ligesom for CustomPrivateSectorPerson udstilles også “totalCount” for CustomPublicSectorPerson. Det vil returnere antallet af personer, der svarer til dit input. For at query ”totalCount” må du ikke query andre felter. Et eksempel vil være:
| Code Block |
|---|
query {
CPRCustom_PublicSectorPerson(
input: { navn: { fornavne: { eq: "John" }, efternavn: { eq: "Doe" } } }
) {
totalCount
}
} |
Interval søgninger
Det er muligt at søge på fødselsdage med til- og fra-datoer i CustomPublicSectorPerson-tjenesten. Funktionaliteten, som tidligere kun var tilgængelig via REST-tjenesterne, er også implementeret for GraphQL. Du kan fremsøge alle personer med fødselsdato inden for et bestemt datointerval ved hjælp af ”gt” og ”lt” operatorer. Dette gør det muligt at finde personer, der har fødselsdag mellem to specificerede datoer.
| Code Block |
|---|
query {
CPRCustom_PublicSectorPerson(
input: {
foedselsdato: { gt: "1999-01-01", lt: "2002-01-01" }
status: { eq: "bopael_i_danmark" }
}
) {
nodes {
id
foedselsdato
status
statusdato
beskyttelser {
beskyttelsestype
status
virkningfra
virkningtil
}
}
}
} |
Filtering på indlejrede felter
Når du benytter CustomPublicSectorPerson-tjenesten, så er det muligt at lave filtering på de indlejrede felter, for at kunne mindske mængden af data der bliver returneret. Vær opmærksom på at det felt som du filterer på, også skal være i dit udtræk, ellers får du ikke returneret data for det felt.
Følgende er et eksempel hvor der filteres på status på navnefeltet:
| Code Block |
|---|
query {
CPRCustom_PublicSectorPerson(
input: { navn: { fornavne: { eq: "John" }, efternavn: { eq: "Doe" } } }
) {
nodes {
id
navne(where: { status: { eq: "aktuel" } }) {
fornavne
mellemnavn
efternavn
status #Påkrævet
}
beskyttelser {
beskyttelsestype
status
virkningfra
virkningtil
}
}
}
} |