REST (json) - Utdanningsdirektoratet/KL06-LK20-public GitHub Wiki
Tips om læreplaner: Ta utgangspunkt i
- https://data.udir.no/kl06/v201906/laereplaner-lk20 for de nye planene (som gjelder fra 1.8.2020), og
- https://data.udir.no/kl06/v201906/laereplaner for de som er av LK06-typen (de som var gyldig i perioden mellom 1.8.2006 og 31.07.2020).
Se også liste-over-alle-typene-i-Grep for å finne alle tilgjengelige typer i Grep som du kan liste.
For deg som har brukt, eller kjenner APIet vårt før "fagfornyelsen" kom, anbefaler vi å starte med den lille artikkelen Hva er nytt med v201906.
Lister og oppslag av forekomster
Lister er fine for å få tak i referanser til alle forekomster av de typene objekter vi tilbyr i Grep. Da kan du traversere videre for å få ut all informasjon som er tilgjengelig for en gitt forekomst i lista.
**Listene har følgende URL-syntaks:**
https://data.udir.no/kl06/v{versjon}/{type}
, for eksempel https://data.udir.no/kl06/v201906/fagkoder
**Forekomst av en gitt type har følgende URL-syntaks:**
https://data.udir.no/kl06/v{versjon}/{type}/{kode}
, for eksempel https://data.udir.no/kl06/v201906/fagkoder/NOR1204
Legg merke til forskjellen på forventet {type} i en URL-request, og "grep-type" som er en attributt som finnes i alle forekomster.
- NOR1204 forekommer i arrayet http://data.udir.no/kl06/v201906/fagkoder (plur.)
- NOR1204 er av "grep-type": "http://psi.udir.no/ontologi/kl06/fagkode" (sing.)
Verdi for {type} i GET-requestene for lister er "grep-typen" i plural form, f.eks "fagkoder". En forespørsel etter f.eks. /kl06/v201906/fagkoder, returnerer et array av alle fagkoder i Grep, men den samme forespørselen etterfulgt av f.eks. /NOR1204, gjør altså et oppslag på den gitte forekomsten av grep-typen "fagkode", som altså ligger i arrayet "fagkoder".
Traversere videre fra lister:
De dataene du får i json-objektene i arrayet (pr. type) er kun ment for referanser for videre traversering, og her er attributtet "url-data" veien for videre traversering.
En klassisk bommert vil være å parse direkte fra arrayet pr. type, siden disse inneholder en liten bunke basisinformasjon. En god regel er altså å traversere (slå opp) hvert element ved hjelp av referansen i egenskapen "url-data" og parse derfra.
- Se liste-over-alle-typene-i-Grep for å finne alle tilgjengelige typer i Grep som du kan liste.
- Se Grafer-om-Grep for å lese om en forenklet modell som viser sammenhengen mellom de viktigste typene i Grep.
Litt om identifikatorer
REST-API-ene våre viser ikke tydelig hva som er primær- eller fremmednøkler. Men alle elementene i Grep har fire ulike identifikatorer som kan brukes (og historisk har vært brukt) til ulike formål/settinger - og da som idetifikatorer (og dermed kan brukes som primærnøkler):
Ta for eksempel fagkoden https://data.udir.no/kl06/v201906/fagkoder/NOR1204:
- "id": "uuid:76ca56d2-6bcd-47ff-9d89-3d3f873df136" (UUID, globalt unik)
- "kode": "NOR1204" (unik kode i Grep-sammenheng)
- "uri": "http://psi.udir.no/kl06/NOR1204": Globalt unik, URL-basert identifikator, brukt i ontologi-sammenheng (Hvis du slår opp http://psi.udir.no/kl06/NOR120 i nettleseren ser du hvilken grep-type elementet er, og viser videre til de ulike formatene elementet er tilgjengelig på. Legg på .json, så har du en versjon av URLen du kan parse fra (http://psi.udir.no/kl06/NOR120.json).
- "url-data": "https://data.udir.no/kl06/v201906/fagkoder/NOR1204" (globalt unik, URL-basert identifikator, brukt for oppslag (og traversering) av data som elementet har)
I en REST-kontekst, anbefaler vi egenskapen "url-data". På den måten er det enklere å få tak i innholdet bak referansen, samtidig som den kan brukes som en identifikator. Vær likevel obs på at "url-data" er versjonsensitiv (se /v201906/ i stien). Vil du ha en permanent URL, bruk heller "uri" - men da er det en lengre vei for å slå opp dataene (slå opp "uri" for derfra å gå videre til "url-data"-verdien til et URI-oppslag).
i |
For brukere av SPARQL-tjenesten vår, er det "uri" som er nøkkelen for videre traversering/spørring, ikke "url-data" |
---|
i |
For de som bruker koder fra Grep i arbeid med metadatatagging av læringsressurser etter standarden NS4180, anbefaler vi å bruke "uri"-verdier, nettopp fordi de er permalenker/"permaidentifikatorer". Som nevnt over, resolver disse med "grep-type" og "url-data"-referase. |
---|