OData (læsning)

OData-API’et er et read-only API til at udlæse organisations- og identitetsdata. Det udstilles på:

https://kommune.sofd.io/odata/

API-nøglen sendes i headeren ApiKey. Det fulde skema (entiteter og felter) kan altid hentes som OData-metadata:

GET https://kommune.sofd.io/odata/$metadata

Entiteter#

Følgende entiteter kan tilgås direkte med egne endpoints:

  • Persons (/odata/Persons) – personer (navn, CPR, kaldenavn, persontype med videre).
  • OrgUnits (/odata/OrgUnits) – organisatoriske enheder (navn, CVR, EAN, type, overordnet enhed med videre).
  • Functions (/odata/Functions) – funktioner.

Relaterede data hentes via $expand fra disse, for eksempel:

  • fra Persons: tilknytninger, brugerkonti, telefoner, adresser, orlov, stedfortrædere, børn og foto.
  • fra OrgUnits: adresser, telefoner, KLE, leder, tags og tilknytninger.
  • fra en tilknytning (via en person eller enhed): enhed, person, KLE og funktioner.

Tilknytninger, brugerkonti, funktionstildelinger og foto indgår i datamodellen og kan udlæses via $expand, men har ikke deres egne top-level endpoints.

Forespørgsler#

OData understøtter standard query-parametre, blandt andet $filter, $select, $expand, $orderby, $count og $top. Eksempler:

# Personer der hedder Anders
GET /odata/Persons?$filter=Firstname eq 'Anders'
ApiKey: xxxx-xxxx-xxxx-xxxx

# Enheder, kun navn og EAN, sorteret efter navn
GET /odata/OrgUnits?$select=Name,Ean&$orderby=Name

# Personer med deres tilknytninger og brugerkonti
GET /odata/Persons?$expand=Affiliations,Users

For den fulde OData-syntaks henvises til den officielle OData-dokumentation.

Adgangsbegrænsning#

Adgangen pr. nøgle kan begrænses til bestemte felter (fx adgang til navn, men ikke CPR) og til bestemte afsender-IP-adresser. Der kan kun læses via OData.