mandag 19. desember 2011

Utviklerskolen del 1, OData

I regObs utviklerskolen skal jeg ta for meg det grunnleggende som skal til for å kunne utvikle applikasjoner eller tjenester som benytter seg av regObs api'et. Siden regObs benytter seg av OData skal vi i denne første delen bli kjent med api'et gjennom mulighetene vi har i OData til å hente ut de data'ene vi ønsker.

  1. Hvordan se på og hente ut data fra regObs api'et vha. OData.
  2. Hente ut data fra regObs vha. JQuery og Ajax.
  3. Hente ut data fra regObs vha. VisualStudio og .NET
  4. Logge på regObs for å hente ut beskyttet data.
  5. Registrere en hendelse i regObs vha. VisualStudio og .NET

For de som er ukjent med OData så står dette for Open Data Protocol. Kort fortalt er dette en webprotocol som gjør det mulig å gjøre spørringer og oppdatere data via kjente webteknologier som http, atom og Json. Mer utførende forklaring og detaljer finner du på 
http://www.odata.org/.


Det eneste du trenger for å få tilgang til regObs api'et er en nettleser hvor du enkelt taster inn adressen til regObs-stage http://h-web01.nve.no/stage_regobsservices/Odata.svc/ eller regObs-test http://h-web01.nve.no/test_regobsservices/odata.svc/ (prod versjoner finner du her: http://api.nve.noog du får da listet ut datamodellen eks:


Som dere ser får vi listet ut datamodellen. Vær oppmerksom på at entiteter som slutter på KD er oppslagstabeller som man kun kan lese fra.

Entiteter som slutter på V er data som er samlet i ett view og som kun kan leses fra.

Vi kan nå starte å benytte oss av kraften som finnes i OData hvor det gir oss veldig mange muligheter til gjøre spørringer for å hente ut de dataene vi selv ønsker.

Eksempelvis så kan vi nå hente ut alle naturfarene gjennom å referere til Entiteten direkte i url'en. Naturfarene ligger i Entiteten som heter GeoHazardKD. Eks: http://h-web01.nve.no/test_regobsservices/odata.svc/GeoHazardKD()


Naturfarene blir da listet ut sammen med metadata i ett atom format.

Ser dere nærmere på data'ene så kommer det både norsk og engelske tekster. Årsaken til dette er at regObs gjennom en LangKey i alle oppslagstabeller har støtte for flere språk. Hvilke språk som støttes finner dere i entiteten Language. Jeg ønsker nå å sortere ut kun de norske tekstene og jeg ønsker å få dataene mine i json format. Dette gjøres enkelt ved å endre på url'en hvor vi sier at vi skal ha norske tekster dvs. LangKey = 1 og json format, eks:  http://h-web01.nve.no/test_regobsservices/odata.svc/GeoHazardKD()?$filter=(cast(LangKey,'Edm.Int32'))%20eq%201&$format=json


Nærmere info om flere måter å gjøre spørringer på finner dere på odata.org sine sider. Det finnes også en del 3parts verktøy som hjelper dere å få oversikt og generere url til litt mer avanserte spørringer. Silverlight OData Explorer og Linqpad.


Figuren over er et utsnitt av Silverlight OData Explorer.

Ingen kommentarer:

Legg inn en kommentar