Transcript
  • 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)