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)