-
Brukermanual for Grep LæreplanspørringerHistorikk
Revisjon Dato Revidert av Kommentar0.9 25.07.2011 Stian G-E
Første versjon0.10 19.12.2012 Une Haga Lagt til merknader0.11
19.02.2013 Une Haga Lagt til merkelapper og kompetansemål. Lagt til
nye felter
i læreplaner og endret og utvidet merknader. Nytt versjonsnummer
2013/02
0.12 22.04.2013 Une Haga Gjort noen endringer på
baseelementnivå. Alle elementer har Status i kortvisning. Alle
hovedelementer har SistEndre, utenom kompetansemål.Lagt til
fagkategori og fagmerknadNytt versjonsnummer 2013/04
0.13 24.06.2013 Une Haga Lagt til dokumentasjon for utlisting av
kompetansemål. Har oppdatert noen lenker som inneholdt skrivefeil
el.
0.14 26.08.2013 Une Haga Lagt til dokumentasjon for versjon
http://psi.udir.no/kl06/2013/11 av tjenesten. Har fjernet æ, ø og å
fra alle navn, lagt inn mulighet for valg av språk i rest og soap,
og utvidet tjenesten til å støtte spørringer på opplæringsfag. Og
endret navn fra fag til fagkoder
-
Innhold
Historikk
.......................................................................................................................................................
1
Innhold
.........................................................................................................................................................
2
Introduksjon
.................................................................................................................................................
3
NB: Spesielt for testversjonen
......................................................................................................................
3
Webtjenester
...............................................................................................................................................
3
Typer elementer
.......................................................................................................................................
3
Grensesnitt
...............................................................................................................................................
4
Definisjon av elementer
...........................................................................................................................
4
REST-grensesnittet
.......................................................................................................................................
5
Språkvalg i rest
.........................................................................................................................................
5
SOAP-grensesnittet
......................................................................................................................................
8
Språkvalg i soap
......................................................................................................................................
10
OData-grensesnittet
...................................................................................................................................
11
OData og fagkoder
.................................................................................................................................
11
OData og læreplaner
..............................................................................................................................
13
OData og programområder
....................................................................................................................
14
OData og utdanningsprogram
................................................................................................................
14
OData og merknader
..............................................................................................................................
14
OData og merkelapper
...........................................................................................................................
15
OData og kompetansemål
......................................................................................................................
15
OData og fagkategori
..............................................................................................................................
15
OData og fagområde
..............................................................................................................................
15
Eksempler
...................................................................................................................................................
15
Bruk av SOAP-grensesnitt (.Net)
.............................................................................................................
15
Endringer i konfigurasjon
...................................................................................................................
16
Kode
...................................................................................................................................................
18
Demonstrasjon
...................................................................................................................................
19
Rest-grensesnitt
.....................................................................................................................................
20
Utlisting av alle fagkoder i html-side med JQuery
..............................................................................
20
-
Kombinasjon av grensesnitt (REST og OData)
.....................................................................................
21
IntroduksjonUtdanningsdirektoratet tilbyr nå et sett med
tjenester for å kunne hente ut data fra Grep. I dette dokumentet
gir vi en oppsummering av muligheter og brukseksempler for disse
tjenestene.
NB: Spesielt for testversjonenAlle URL-er som omtales i dette
dokumentet må erstattes med adressen til testsystemet under
testing.Testversjonen nås på adressen 194.143.25.132.For eksempel
vil det det si at for soap er adressen 194.143.25.132/kl06/soap (og
ikke data.ud-ir.no/kl06/soap).For en gitt læreplan vil adressen
eksempelvis være 194.143.25.132/kl06/MAT1-04.xml (og ikke
data.udir.no/kl06/MAT1-04.xml).
Webtjenester
Typer elementerGreps tjenester tilbyr nå uthenting av følgende
typer elementer fra Grep:
• Læreplaner
• Læreplan-kortinformasjon (for søk og RSS/Atom)
• Fagkoder
• Fagkode-kortinformasjon (for søk og RSS/Atom)
• Utdanningsprogram
• Utdanningsprogram-kortinformasjon (for søk og RSS/Atom)
• Programområder
• Programområde-kortinformasjon (for søk og RSS/Atom)
• Merknader
• Merknad-kortinformasjon (for søk og RSS/Atom)
-
• Merkelapper
• Merkelapper-kortinformasjon (for søk og RSS/Atom)
• Kompetansemål
• Kompetansemål-kortinformasjon (for søk og RSS/Atom)
• Fagområder
• Fagområder-kortinformasjon (for søk og RSS/Atom)
• Fagkategorier
• Fagkategorier-kortinformasjon (for søk og RSS/Atom)
• Opplæringsfag
• Opplærinsfag-kortinformasjon (for søk og RSS/Atom)
GrensesnittFor å tilby funksjonalitet til flest mulig
bruksscenarier, er tjenestene tilgjengelige på forskjellige
grensesnitt og formater. Følgende grensesnitt tilbys:
• Et XML/SOAP-grensesnitt for søk og detaljert oppslag på fag og
læreplaner
• Et REST-basert grensesnitt for utlisting og detaljert oppslag
på fag og læreplaner
• Et OData-grensesnitt for søk på fag og læreplaner
Definisjon av elementerHva som ligger i kontrakten for de ulike
elementtypene kan en finne her:
http://data.udir.no/kl06/soap?wsdl
http://data.udir.no/kl06/soap?wsdlhttp://data.udir.no/kl06/soap?wsdl
-
REST-grensesnittet
I tabellen nedenfor har vi listet opp hvilke URLer du kan bruke
for å hente ut de ulike elementene. REST-grensesnittet støtter en
rekke ulike formater. Om du vil bruke et annet format enn
standardformatet (JSON), oppgir du dette ved å legge på {.format}
på slutten av URLen. Eksempelvis for å liste ut alle fag i
xml-format, oppgir du http ://d a ta.udir.no/kl06/fagkoder.xml
Språkvalg i restDet er mulig å velge ut tekster på et bestemt
språk ved å legge inn {?lang=xxx}. Der språket angis i henhold til
ISO 639-2 standarden. http://data.udir.no/kl06/MAT1-04?lang=nno vil
gi deg den gitte læreplanen med kun nynorske tekster. Dersom det
ikke finnes oversettelser på dette språket vil tekstfeltene vises
som tom liste.
Dersom en ikke angir noe språk vil en få ut alle tilgjengelige
oversettelser for angitt element. Eks.
http://data.udir.no/kl06/MAT1-03. Dersom en vil hente ut elementet
på «hovedspråk», som i hovedsak variere mellom nynorsk og bokmål,
setter en lang=default. Eks.
http://data.udir.no/kl06/MAT1-03?lang=default vil vise MAT1-03 på
nynorsk.
Url Beskrivelse Støttede formater
Eksempel
http://data.udir.no/kl06/fagkoder{.format}{?lang=XXX}
Henter ut alle fag i Grep RSS/Atom (.atom)XML (.xml)JSON
(.json)
http://data.udir.no/ kl06/fag koder (gir tilbake alle fagkoder i
standardformat)http://data.udir.no/kl06/fagkoder.ato m (gir tilbake
alle fagkoder som en RSS-feed)http://d ata.udir.no/kl06/fagkoder
?lang=nob viser alle fag på bokmål
http://data.udir.no/kl06/laereplaner{.format}{?lang=XXX}
Henter ut alle læreplaner i Grep RSS/Atom (.atom)XML (.xml)JSON
(.json)
http://data.udir.no/kl06/laereplaner (gir tilbake alle
læreplaner i
standardformat)http://data.udir.no/kl06/laereplaner.atom(gir
tilbake alle læreplaner som en
RSS-feed)http://data.udir.no/kl06/laerepl a n?lang=nno viser alle
læreplaner på nynorsk
http://data.udir.no/kl06/utdanningsprogram{.format}{?lang=XXX}
Henter ut alle utdanningsprogram i Grep
RSS/Atom (.atom)XML (.xml)JSON (.json)
http:/ /data.udir.no/kl06/utdanni ngsprogram (gir tilbake alle
utdanningsprogram i
standardformat)http://data.udir.no/kl06/utdanningsprogram.atom
http://data.udir.no/kl06/utdanningsprogram.atomhttp://data.udir.no/kl06/utdanningsprogram.atomhttp://data.udir.no/kl06/utdanningsprogramhttp://data.udir.no/kl06/utdanningsprogramhttp://data.udir.no/kl06/utdanningsprogramhttp://data.udir.no/kl06/laereplan?lang=nnohttp://data.udir.no/kl06/laereplan?lang=nnohttp://data.udir.no/kl06/laereplan?lang=nnohttp://data.udir.no/kl06/laereplaner.atomhttp://data.udir.no/kl06/laereplaner.atomhttp://data.udir.no/kl06/laereplanerhttp://data.udir.no/kl06/laereplanerhttp://data.udir.no/kl06/fag.atomhttp://data.udir.no/kl06/fagkoder.atohttp://data.udir.no/kl06/fagkoder.atohttp://data.udir.no/kl06/faghttp://data.udir.no/kl06/fagkoder%7B.format%7D%7B?lang=XXX%7Dhttp://data.udir.no/kl06/fagkoder%7B.format%7D%7B?lang=XXX%7Dhttp://data.udir.no/kl06/MAT1-03?lang=defaulthttp://data.udir.no/kl06/MAT1-03?lang=defaulthttp://data.udir.no/kl06/fag.xmlhttp://data.udir.no/kl06/fag.xmlhttp://data.udir.no/kl06/fag.xmlhttp://data.udir.no/kl06/fag.xml
-
(gir tilbake alle utdanningsprogram som en
RSS-feed)http://data.udir.no/kl06/utdanningsprogram?lang=nob viser
alle utdanningsprogram på bokmål
http://data.udir.no/kl06/programomraader{.format}{?lang=XXX}
Henter ut alle programområder i Grep
RSS/Atom (.atom)XML (.xml)JSON (.json)
http://data.udir.no/kl06/programomraader (gir tilbake alle
programområder i
standardformat)http://data.udir.no/kl06/programomraader.atom(gir
tilbake alle programområder som en RSS-feed)http:
//data.udir.no/kl06/program omraader?lang=nob viser alle
programområder på bokmål
http://data.udir.no/kl06/merknader{.format}{?lang=XXX}
Henter ut alle merknader i Grep RSS/Atom (.atom)XML (.xml)JSON
(.json)
http://data.udir.no/kl06/merknader (gir tilbake alle merknader i
standardformat)http://data.udir.no/kl06/merknader.atom(gir tilbake
alle merknader som en
RSS-feed)http://data.udir.no/kl06/merknader?lang=nob viser alle
merknader på bokmål
http://data.udir.no/kl06/merkelapper{.format}{?lang=XXX}
Henter ut alle merkelapper i Grep RSS/Atom (.atom)XML (.xml)JSON
(.json)
http://data.udir.no/kl06/merkelapper (gir tilbake alle
merkelapper i
standardformat)http://data.udir.no/kl06/merkelapper.atom(gir
tilbake alle merknader som en
RSS-feed)http://data.udir.no/kl06/merkelapper?lang=nob viser alle
merkelapper på bokmål
http://data.udir.no/kl06/fagomraader{.format}{?lang=XXX}
Henter ut alle fagområder i Grep RSS/Atom (.atom)XML (.xml)JSON
(.json)
http://data.udir.no/kl06/fagomraader (gir tilbake alle
fagområder i
standardformat)http://data.udir.no/kl06/fagomraader.atom(gir
tilbake alle fagområder som en
RSS-feed)http://data.udir.no/kl06/fagomraader?lang=nob viser alle
fagområder på bokmål
http://data.udir.no/kl06/fagkategorier{.format}
Henter ut alle fagkategorier i Grep RSS/Atom (.atom)XML
(.xml)JSON (.json)
http://data.udir.no/kl06/fagkategorier (gir tilbake alle
fagkategorier i standardformat)http://data.u dir.no/kl06/fagkateg
orier.atom(gir tilbake alle fagkategorier som en
RSS-feed)http://data.udir.no/kl06/fagkategorier?lang=nob viser alle
fagkategorier på bokmål
http://data.udir.no/kl06/komp Henter ut alle kompetansemål i
RSS/Atom (.atom) http://data.udir.no/kl06/kompeta
http://data.udir.no/kl06/fagkategorier.atomhttp://data.udir.no/kl06/fagkategorier.atomhttp://data.udir.no/kl06/fagomraader.atomhttp://data.udir.no/kl06/fagomraader.atomhttp://data.udir.no/kl06/merkelapper.atomhttp://data.udir.no/kl06/merkelapper.atomhttp://data.udir.no/kl06/merknader.atomhttp://data.udir.no/kl06/merknader.atomhttp://data.udir.no/kl06/merknaderhttp://data.udir.no/kl06/merknaderhttp://data.udir.no/kl06/programomraader.atomhttp://data.udir.no/kl06/programomraader.atomhttp://data.udir.no/kl06/programomraaderhttp://data.udir.no/kl06/programomraader
-
etansemaal{.format}{?lang=XXX}
Grep XML (.xml)JSON (.json)
nsemaal (gir tilbake alle kompetansemål i
standardformat)http://data.udir.no/kl06/kompetansemaal.a tom (gir
tilbake alle fagmerknader som en
RSS-feed)http://data.udir.no/kl06/kompetansemaal?lang=nob viser
alle kompetansemål på bokmål
http://data.udir.no/kl06/opplaeringsfag{.format}{?lang=XXX}
Henter ut alle opplæringsfag i Grep RSS/Atom (.atom)XML
(.xml)JSON (.json)
http://data.udir.no/kl06/opplaeringsfag (gir tilbake alle
kompetansemål i
standardformat)http://data.udir.no/kl06/opplaeringsfag.atom(gir
tilbake alle fagmerknader som en
RSS-feed)http://data.udir.no/kl06/opplaeringsfag?lang=nob viser
alle opplæringsfag på bokmål
http://data.udir.no/kl06/{kode}{.format}{?lang=XXX}
Henter ut et element i Grep. Foreløpig kan disse elementene
hentes ut:
• Fagkoder• Læreplaner• Utdanningsprog
ram• Programområd
er• Merknader• Merkelapper• Kompetansemå
l• Fagområder• Fagkategorier• Opplæringsfag
XML (.xml)JSON (.json)XTM 2.0 (.xtm)XTM (.xtm)PDF (.pdf)
http://data.udir.no/kl06/IDR1-01(Gir tilbake læreplan med kode
IDR1-01 i standardformat)http://data.udir.no/kl06/IDR1-01.xml(Gir
tilbake samme læreplan i
xml-format)http://data.udir.no/kl06/HSF1001(gir tilbake faget med
kode HSF1001 i
standardformat)http://data.udir.no/kl06/MAT1-03?lang=nno (Gir
tilbake læreplan med kode MAT1-03 i standardformat, med kun visning
av nynorske tekster)
http://data.udir.no/kl06/MAT1-03?lang=nnohttp://data.udir.no/kl06/MAT1-03?lang=nnohttp://data.udir.no/kl06/HSF1001http://data.udir.no/kl06/IDR1-01.xmlhttp://data.udir.no/kl06/IDR1-01.xmlhttp://data.udir.no/kl06/IDR1-01http://data.udir.no/kl06/opplaeringsfag.atomhttp://data.udir.no/kl06/opplaeringsfag.atomhttp://data.udir.no/kl06/kompetansemaal.atomhttp://data.udir.no/kl06/kompetansemaal.atomhttp://data.udir.no/kl06/kompetansemaal.atom
-
SOAP-grensesnittet
Grep tilbyr også et SOAP-grensesnitt. URL for endepunktet for
dette grensesnittet er http://data.udir.no/kl06/soap.
Wsdl/kontrakten for denne tjenesten kan hentes ut på følgende URL:
http://data.udir.no/kl06/soap?wsdl. Kontrakten inneholder
tjenestekontrakten og alle relevante datatyper.
SOAP-grensesnittet tilbyr følgende metoder for å finne og hente
informasjon fra Grep.
Metode Beskrivelse Teknisk dokumentasjonFinnPlaner Finner
læreplaner basert på
søkekriterier. Se teknisk dokumentasjon for detaljer rundt
parametere
FinnP l aner
FinnFagkoder Finner fagkoder basert på søkekriterier. Se teknisk
dokumentasjon for detaljer
FinnFa g koder
FinnProgramomraader Finner programområder basert på
søkekriterier. Se teknisk dokumentasjon for detaljer
FinnProgramomraader
FinnUtdanningsprogram Finner utdanningsprogram basert på
søkekriterier. Se teknisk dokumentasjon for detaljer
FinnUtdanningsprogram
FinnMerknader Finner merknader basert på søkekriterier. Se
teknisk dokumentasjon for detaljer
FinnMerknader
FinnMerkelapper Finner merkelapper basert på søkekriterier. Se
teknisk dokumentasjon for detaljer
FinnMerkelapper
FinnFagomraader Finner fagområder basert på søkekriterier. Se
teknisk dokumentasjon for detaljer
FinnFagomraader
FinnFagkategorier Finner fagkategorier basert på søkekriterier.
Se teknisk dokumentasjon for detaljer
FinnFagkategorier
FinnKompetansemaal Finner kompetansemål basert på søkekriterier.
Se teknisk dokumentasjon for detaljer
FinnKompetansem aal
FinnOpplaeringsfag Finner opplæringsfag basert på søkekriterier.
Se teknisk dokumentasjon for detaljer
FinnOpplaeringsfag
file:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odthttp://data.udir.no/soap?wsdlhttp://data.udir.no/kl06/soap
-
HentPlanFraKode Returnerer en læreplan basert på læreplanens
kode
HentP l anFraKode
HentPlanFraPsi Returnerer en læreplan basert på læreplanens PSI
(id)
Hent P lanFraPsi
HentFagkodrFraKode Returnerer en fagkode basert på fagets
kode
Hen t FagkodeFraKode
HentFagkodeFraPsi Returnerer en fagkode basert på fagets PSI
(id)
He n tFagkodeFraPsi
HentProgramomraadeFraKode Returnerer et programområde basert på
programområdets kode
HentProgramomraadeFraKode
HentProgramomraadeFraPsi Returnerer et programområde basert på
programområdets psi
HentProgramomraadeFraPsi
HentUtdanningsprogramFraKode Returnerer et utdanningsprogram
basert på utdanningsprogrammets kode
HentUtdanningsprogramFraKode
HentUtdanningsprogramFraPsi Returnerer et utdanningsprogram
basert på PSI (id)
He n tUtdanningsprogram fra Psi
HentMerknadFraPsi Returnerer en merknad basert på merknadens
psi
HentMerknadFraPsi
HentMerknadFraKode Returnerer en merknad basert på merknadens
kode
HentMerknadFraKode
HentMerkelapperFraPsi Returnerer en merkelapp basert på
merkelappens psi
HentMerkelappFraPsi
HentMerkelapperFraKode Returnerer en merkelapp basert på
merkelappens kode
HentMerkelappFraKode
HentKompetansemaalFraPsi Returnerer et kompetansemål basert på
kompetansemålets psi
HentKompetansemaalFraPsi
HentKompetansemaalFraKode Returnerer et kompetansemål basert på
kompetansemålets kode
HentKompetansemaalFraKode
HentFagomraadeFraPsi Returnerer et fagområde basert på
kompetansemålets psi
HentFagomraadeFraPsi
HentFagomraadeFraKode Returnerer et fagområde basert på
kompetansemålets kode
HentFagomraadeFraKode
HentFagkategoriFraPsi Returnerer en fagkategori basert på
kompetansemålets psi
HentFagkategoriFraPsi
HentFagkategoriFraKode Returnerer en fagkategori basert på
kompetansemålets kode
HentFagkategoriFraKode
HentOpplaeringsfagFraPsi Returnerer et opplæringsfag basert på
opplæringsfagets psi
HentOpplaeringsfagFraPsi
HentOpplaeringsfagFraKode Returnerer et opplæringsfag basert på
opplæringsfagets kode
Hent OpplaeringsfagFraKode
file:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon
Soap.odtfile:///C:/AppData/Local/Microsoft/Windows/dok/L?replansp?rring
Teknisk Dokumentasjon Soap.odt
-
Språkvalg i soapFor alle metoder er det mulig å legge inn
språkvalg. Språket angis i henhold til ISO 639-2. Dersom det ikke
finnes oversettelser på det valgte språket, vil tekstfeltene vises
som tom verdi og i tillegg vil default verdien komme med. Dersom en
ikke angir noe språk, vil en få ut alle tilgjengelige oversettelser
for angitt element. Og om en vil hente ut elementet på
«hovedspråk», som i hovedsak varierer mellom nynorsk og bokmål,
settes valgt språk lik «default».
Eks: Uthenting av MAT1-03 på engelsk, og på hovedspråk.
Eks. 1
mat1-03 nob
Eks. 2
mat1-03 default
-
OData-grensesnittet
Grep tilbyr et enkelt OData-grensesnitt for å søke etter
elementer. Dette tilbys som et alternativ til det SOAP-baserte
søket, i de tilfellene hvor det søket er for begrenset, eller der
hvor man ikke vil benytte SOAP. OData-grensesnittet forholder seg
til spesifikasjonene funnet på http://www.odata.org/.
Grunn-URL til OData-grensesnittet er
http://udir.data.no/kl06/odata / .
OData og fagkoderFor å spørre etter fagkoder, oppgir du URLen
http://udir.data.no/kl06/odata/Fag kode (merk: OData-grensesnittet
skiller mellom store og små bokstaver). OData leverer som default
en RSS-feed, men du har også mulighet til spesifikt å få returnert
JSON.
Figur 1: Fagkoder som RSS-feed
http://udir.data.no/kl06/odata/Faghttp://udir.data.no/kl06/odatahttp://www.odata.org/
-
Figur 2: Fagkoder som JSON (merk bruk av ?$format=json i
URL)
På fagkoder kan du bruke følgende felter til å filtrere
resultater:
Felt Beskrivelse EksempelTittel Fagkodens tittel
på default
språkhttp://data.udir.no/kl06/odata/Fagkode?$filter=startswith(Tittel,'Tverrfaglig')
(Returnerer alle fagkoder hvis tittel starter med
“Tverrfaglig”)
Kode Fagkodens kode http:/
/data.udir.no/kl06/odata/Fagkode?$filter=(Kode eq ' ENG0001')
(Returnerer fagkoden hvis kode er ENG0001)
Psi Fagkodens identifikator (eller PSI i Grep)
http://data.udir.no/kl06/odata /Fagkode?$filter=(Psi eq '
uuid:59d5b28c-963b-40d4-bf41-eff7b333b424 ') (Returnerer fagkoden
med PSI = uuid:59d5b28c-963b-40d4-bf41-eff7b333b424)
UrlData Url til detaljert informasjon om fagkoden for maskinell
behandling
http://data.udir.no/kl06/odata/Fagkode?$filter=(Psi eq
'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlD
ata&$format=json (Returnerer kun UrlData-feltet på json-format
for fagkoden med PSI =
uuid:59d5b28c-963b-40d4-bf41-eff7b333b424)
UrlPsi Url til detaljert informasjon om fagkoden for brukere
http://data.udir.no/kl06/odata /Fagkode?$filter=(Psi eq
'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=json(Returnerer
kun UrlPsi-feltet på json-format for fagkoden med PSI =
uuid:59d5b28c-963b-40d4-bf41-eff7b333b424)
SistEndret Når fagkoden sist ble oppdatert
http://data.udir.no/kl06/odata/Fagkode?$filter=( SistEndre t gt
datetime'2011-01-01')(Returnerer alle fagkoder som er endret etter
1 januar 2011)
Status Status til http://dat
a.udir.no/kl06/odata/Fagkode?$filter=(Status eq
http://data.udir.no/kl06/odata/Fagkode?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')http://data.udir.no/kl06/odata/Fagkode?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')http://data.udir.no/kl06/odata/Fagkode?$filter=(SistEndret%20gt%20datetime'2011-01-01')http://data.udir.no/kl06/odata/Fagkode?$filter=(SistEndret%20gt%20datetime'2011-01-01')http://data.udir.no/kl06/odata/Fagkode?$filter=(SistEndret%20gt%20datetime'2011-01-01')http://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=jsonhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=jsonhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=jsonhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/odata/Fag?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')http://data.udir.no/odata/Fag?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')http://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'http://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'http://data.udir.no/kl06/odata/Fagkode?$filter=(Psi%20eq%20'http://data.udir.no/kl06/odata/Fagkode?$filter=(Kode%20eq%20'ENG0001')http://data.udir.no/kl06/odata/Fagkode?$filter=(Kode%20eq%20'ENG0001')http://data.udir.no/kl06/odata/Fagkode?$filter=(Kode%20eq%20'ENG0001')http://data.udir.no/kl06/odata/Fagkode?$filter=startswith(Tittel,'Tverrfaglig')http://data.udir.no/kl06/odata/Fagkode?$filter=startswith(Tittel,'Tverrfaglig')
-
fagkoden 'http://psi.udir.no/on t ologi/status/utgaatt')
Returnerer alle fagkoder som har status Utgått
OData og læreplanerFor å spørre etter læreplaner, oppgir du
URLen http://data.udir.no/kl06/odata/Læreplan
Figur 3: Læreplaner levert som RSS
Figur 4: Læreplan levert som JSON
På læreplan har vi følgende felt å jobbe med:
Felt Beskrivelse Eksempel
http://data.udir.no/kl06/odata/L%C3%A6replanhttp://data.udir.no/kl06/odata/Fagkode?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')http://data.udir.no/kl06/odata/Fagkode?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')http://data.udir.no/kl06/odata/Fagkode?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')
-
Tittel Læreplanens tittel på fastsatt språk
http://data.udir.no/kl06/odata/Læreplan?$filter=endswith(Tittel,'engelsk')
(Returnerer alle læreplaner hvis tittel slutter med “engelsk”)
Kode Læreplanens kode
http://data.udir.no/odata/kl06/Læreplan?$filter=(Kode eq
'SFS2-01')(Returnerer læreplanen hvis kode er SFS2-01)
Psi Læreplanens identifikator (eller PSI i Grep)
http://data.udir.no/kl06/odata/Læreplan?$filter=(Psi eq
'uuid:3e9bd273-f1cd-4631-854e-1229e384938c')(Returnerer læreplanen
med PSI = uuid:3e9bd273-f1cd-4631-854e-1229e384938c)
UrlData Url til detaljert informasjon om læreplanen for
maskinell behandling
http://data.udir.no/kl06/odata/Læreplan?$filter=(Psi eq
'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=Ur
lData&$format=json (Returnerer kun UrlData-feltet på
json-format for læreplane med PSI =
uuid:59d5b28c-963b-40d4-bf41-eff7b333b424)
UrlPsi Url til detaljert informasjon om læreplanen for
brukere
http://data.udir.no/kl06/odata/Læreplan?$filter=(Psi eq
'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=Url
Psi&$format=json (Returnerer kun UrlPsi-feltet på json-format
for læreplan med PSI =
uuid:59d5b28c-963b-40d4-bf41-eff7b333b424)
SistEndret Når læreplanen sist ble oppdatert
http://data.udir.no/kl06/odata/Lærepla n?$filter=(SistEndret gt
datetime'2011-01-01')(Returnerer alle læreplaner som er endret
etter 1 januar 2011)
Status Status til læreplanen
http://data.udir.no/kl06/odata/Læreplan?$filter=(Status eq
'http://psi.udir.no/ontologi/st atus/utgaatt') Returnerer alle
læreplaner som har status Utgått
OData og programområder
For å spørre etter programområder, oppgir du URL’en
http://data.udir.no/kl06/odata/Programområde
Filtreringsmulighetene er de samme som for fagkoder
OData og utdanningsprogram
For å spørre etter utdanningsprogram, oppgir du URL’en
http://data.udir.no/kl06/odata/Utdanningsprogram
Filtreringsmulighetene er de samme som for fagkoder
http://data.udir.no/kl06/odata/Programomr%C3%A5dehttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Status%20eq%20'http://psi.udir.no/ontologi/status/utgaatt')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(SistEndret%20gt%20datetime'2011-01-01')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(SistEndret%20gt%20datetime'2011-01-01')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(SistEndret%20gt%20datetime'2011-01-01')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlPsi&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:59d5b28c-963b-40d4-bf41-eff7b333b424')&$select=UrlData&$format=jsonhttp://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:3e9bd273-f1cd-4631-854e-1229e384938c')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=(Psi%20eq%20'uuid:3e9bd273-f1cd-4631-854e-1229e384938c')http://data.udir.no/odata/kl06/L%C3%A6replan?$filter=(Kode%20eq%20'SFS2-01')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=endswith(Tittel,'engelsk')http://data.udir.no/kl06/odata/L%C3%A6replan?$filter=endswith(Tittel,'engelsk')
-
OData og merknader
For å spørre etter merknader, oppgir du URL’en
http://data.udir.no/kl06/odata/Merknad
Filtreringsmulighetene er de samme som for fagkoder
OData og merkelapper
For å spørre etter merkelapper, oppgir du URL’en
http://data.udir.no/kl06/odata/Merkelapp
Filtreringsmulighetene er de samme som for fagkoder
OData og kompetansemål
For å spørre etter kompetansemål, oppgir du URL’en
http://data.udir.no/kl06/odata/Kompetansemål
Filtreringsmulighetene er de samme som for fagkoder
OData og fagkategori
For å spørre etter fagområde, oppgir du URL’en
http://data.udir.no/kl06/odata/Fagkategori
Filtreringsmulighetene er de samme som for fagkoder
OData og fagområde
For å spørre etter fagområde, oppgir du URL’en
http://data.udir.no/kl06/odata/Fagområde
Filtreringsmulighetene er de samme som for fagkoder
-
Eksempler
Bruk av SOAP-grensesnitt (.Net)
Her følger et enkelt eksempel på hvordan du kan ta i bruk
SOAP-grensesnittet i en .Net-basert applikasjon.
Figur 5: Opprett en ny applikasjon
Figur 6: Legg til en ny tjeneste-referanse
-
Figur 7: Oppgi URL (http://udir.data.no/soap), trykk "GO" og
OK
Endringer i konfigurasjonI dette tilfellet benytter vi en WCF
proxy-klasse for å få tilgang til tjenesten. Denne har en del
standard innstillinger, som blant annet går på hvor mange elementer
man kan laste ned, og størrelsen på “pakken” fra tjenesten.
Grep-tjenesten kan i utgangspunktet gi en oversikt over alle
læreplaner, og dette vil overstige standardinnstillingene. For å
endre dette – gå til applikasjonens app.config. Der vil du finne
noen linjer som ligner på disse:
Her må/bør du endre maxBufferSize og maxReceivedMessageSize til
mer enn 65536 tegn, i tillegg til å øke maks antall objekter i en
liste. Et forslag på hvordan konfigurasjonen på denne applikasjonen
kan se ut er slik (endringer er uthevet):
-
maxBufferSize="6553600" maxBufferPoolSize="524288"
maxReceivedMessageSize="6553600" messageEncoding="Text"
textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
KodeNå har vi det vi trenger for å kunne bruke tjenestene. Det
som gjenstår er litt kode for å faktisk kalle tjenesten.
I eksempelet her vil vi lage en WPF-basert applikasjon for å
kunne søke opp læreplaner basert på tittel og gyldig fra-datoen på
læreplanen. Vi vil også kunne hente en valgt læreplans vurdering og
vise denne.
Først definerer vi brukergrensesnittet (XAMLen).
Her oppretter vi et enkelt stackpanel med en tekstboks for å
skrive inn tittel, en datovelger for å velge gyldig fra, en knapp
for å starte søk, et grid for å vise søkeresultat (med tittel, kode
og gyldig fra som kolonner) og en web-browser for å vise html:
-
Deretter definerer vi koden for å søke, og for å vise
vurdering:
public partial class MainWindow : Window { public MainWindow() {
InitializeComponent(); }
private GrepSoapClient Client { get; set; }
const string HtmlHeadere = @" ";
const string HtmlSluttHeader = @" ";
// Kode som kjøres når søk-knappen klikkes private void
BtnSøkClick(object sender, RoutedEventArgs e) { InitierProxy();
try { // Kjører FinnPlaner-metoden med tittel og gyldig-fra som
parametere dgSøkeresultat.ItemsSource = this.Client.FinnPlaner( new
laereplansoekrequest { gyldigfra = dtpGyldigFra.DisplayDate, tittel
= txtTittel.Text }).treff;
} catch (Exception ex) { if (Client.State ==
CommunicationState.Faulted) { this.Client.Abort(); }
MessageBox.Show(ex.ToString()); } }
private void DgSøkeresultatSelectionChanged(object sender,
SelectionChangedEventArgs e) { InitierProxy();
try { // Finner koden fra det valgte søkeresultatet i Grid'en
var valgtKode = e.AddedItems.Cast().Select(soekeresultat =>
soekeresultat.kode).FirstOrDefault();
// Henter hele læreplanen fra tjenesten (HentPlanFraKode), og
velger ut vurderingen på 'default'-språk(fastsatt språk)
var vurdering = Client.HentPlanFraKode(new
hentlaereplanfrakoderequest { Kode = valgtKode }) .vurdering
.Where(v => v.noekkel == "default") .Select(v => v.verdi)
.FirstOrDefault();
// Viser vurderingen i en browser if (vurdering != null)
webBrowser.NavigateToString(HtmlHeadere + vurdering +
HtmlSluttHeader);
-
} catch (Exception ex) { if (Client.State ==
CommunicationState.Faulted) { this.Client.Abort(); }
MessageBox.Show(ex.ToString()); }
}
private void InitierProxy() { if (Client == null || Client.State
== CommunicationState.Faulted) Client = new GrepSoapClient(); }
private void WindowClosing(object sender,
System.ComponentModel.CancelEventArgs e) { if (Client != null
&& Client.State == CommunicationState.Opened)
Client.Close(); } }
DemonstrasjonNår vi kjører denne applikasjonen, kan vi filtrere
på tittel og gyldig fra. Om vi oppgir “Natur” som tittel og
01.01.2008 som gyldig fra, vil vi få følgende resultat:
Figur 8: Testing av applikasjon
Rest-grensesnitt
Utlisting av alle fagkoder i html-side med JQuery
-
Følgende html-dokument benytter JQuery og REST-grensesnittet for
å liste ut en enkel html-side med lenker til alle fagkoder. Lenkene
peker på URL-data – URLen, med kode og tittel som beskrivelse av
lenken:
Test.html:
Test
$.getJSON("http://data.udir.no/kl06/fagkoder?callback=?", {},
function (data) { $.each(data, function (i, fagkoder)
{$('p').append('' + fagkoder.kode + ' - ' + fagkoder.tittel +
'
'); }) });
Html-side i nettleser:
Kombinasjon av grensesnitt (REST og OData)
-
Som et eksempel på litt mer avansert bruk, demonstrerer vi her
et eksempel som tilbyr et “fritekst”-søk etter læreplaner, og
mulighet for å se på detaljert informasjon om læreplanen (formålet
med læreplanen). Eksempelet tar i bruk JQuery og jQuery-ui (og
sannsynligvis ganske amatørmessig utført), men kan like gjerne
utføres i andre teknologier.
På bildet under ser du et bilde hvor du kan skrive inn deler av
kode eller tittel, og får tilbake en liste med treff. Søket går mot
OData-grensesnittet, hvor du har stor frihet til å definere hva du
vil hente ut, og hvordan. I dette eksempelet vil du hente tilbake
kode, tittel og URL-data-feltene fra de læreplanene (maks 25) hvor
læreplanens sammenslåtte kode og tittel inneholder deler av
søkestrengen.
Metoden for å søke ser slik ut:
// Søker etter læreplaner function
soekEtterLaereplaner(soekestreng, maksAntallTreff) { var url =
baseurl + "odata/Læreplan?$callback=?&$format=json"; var filter
= "&$filter=substringof('" + soekestreng.toLowerCase() + "',
tolower(concat(concat(Kode, ' - '),
Tittel))) eq true"; var maksResultatFilter = "&$top=" +
maksAntallTreff; var selekterFilter =
"&$select=Tittel,Kode,UrlData";
$.ajax({ type: "GET", url: url + filter + maksResultatFilter +
selekterFilter, contentType: "application/json; charset=utf-8",
dataType: "jsonp", success: function (msg) { // behandler
resultatet } } ); }
Denne benytter standard OData-funksjonalitet for å oppgi filter
og hva den vil ha tilbake. I en søke-intensiv applikasjon vil dette
spare ressurser og båndbredde for klient-applikasjon og
webserveren.
Ved å klikke på ett av treffene, vil den detaljerte læreplanen
hentes, og formål vises:
-
Fra søkeresultatet har vi både URL-data-feltet, og kode-feltet.
Begge disse kan brukes for å hente ut detaljer om læreplanen. Vi er
kun interessert i å vise formål, og vi velger å vise formål på
“default”-språket, som vil tilsvare fastsatt språk på
læreplanen:
// Utdrag av koden for å hente ut detaljert læreplan, og vise
formål på default språk $.getJSON(baseurl + "kl06/" + lp.Kode +
"?callback=?",function (f) { $('#f' + f.kode).append('
' + hentDefaultVerdi(f.formaal) + '
'); });
// Henter ut den språkversjonerte verdien med nøkkelen 'default'
function hentDefaultVerdi(spraakversjonert) { var res = "";
$.each(spraakversjonert, function (i, s) { if (s.noekkel =
"default") res = s.verdi; }); return res; }
Komplett kode til dette eksempelet (krever jquery-ui med
“accordion”-widget)
Læreplansøk
-
var baseurl = "http://data.udir.no/"; var maksAntallTreff = 25;
// Hekter på event på søke-input til å kalle soekEtterLaereplaner,
med søkestreng og maks 25 antall treff $(document).ready(function
() {
$('input[name=soek]').keyup(function () {
soekEtterLaereplaner($('input[name=soek]').val(), maksAntallTreff);
} ); }); // Søker etter læreplaner, kaller lastInnResultater
function soekEtterLaereplaner(soekestreng, maksAntallTreff) { var
url = baseurl + "odata/Læreplan?$callback=?&$format=json"; var
filter = "&$filter=substringof('" + soekestreng.toLowerCase() +
"', tolower(concat(concat(Kode, ' - '), Tittel))) eq true"; var
maksResultatFilter = "&$top=" + maksAntallTreff; var
selekterFilter = "&$select=Tittel,Kode,UrlData";
$.ajax({ type: "GET", url: url + filter + maksResultatFilter +
selekterFilter, contentType: "application/json; charset=utf-8",
dataType: "jsonp", success: function (msg) {
$("#resultat").accordion('destroy'); $("#resultat").text('');
lastInnResultater(msg.d.results);
$("#resultat").accordion({ header: "h3", autoHeight: false,
collapsible: true, active: false, height: 180 });
} } ); }
// Lister ut resultatene, og hekter på et event som gjør at
formål hentes fra detaljert informasjon om læreplan når resultatet
åpnes function lastInnResultater(results) {
$.each(results, function (i, lp) { $('#resultat').append("
-
}); }); }
// Henter ut den språkversjonerte verdien med nøkkelen 'default'
function hentDefaultVerdi(spraakversjonert) { var res = "";
$.each(spraakversjonert, function (i, s) { if (s.noekkel =
"default") res = s.verdi; }); return res; }
Søk på læreplaner:
HistorikkInnholdIntroduksjonNB: Spesielt for
testversjonenWebtjenesterTyper elementerGrensesnittDefinisjon av
elementer
REST-grensesnittetSpråkvalg i rest
SOAP-grensesnittetSpråkvalg i soap
OData-grensesnittetOData og fagkoderOData og læreplanerOData og
programområderOData og utdanningsprogramOData og merknaderOData og
merkelapperOData og kompetansemålOData og fagkategoriOData og
fagområde
EksemplerBruk av SOAP-grensesnitt (.Net)Endringer i
konfigurasjonKodeDemonstrasjon
Rest-grensesnittUtlisting av alle fagkoder i html-side med
JQueryKombinasjon av grensesnitt (REST og OData)