Oulunliikenteen GraphQL-rajapinnat
Yleiskuvaus julkisista GraphQL-rajapinnoista
Oulunliikenteen julkiset GraphQL-rajapinnat tarjoavat dataa Oulun seudun liikennetilanteesta ja palauttavat JSON-muotoista dataa vastauksena.
GraphQL on hakupohjainen rajapintakieli sekä rajapinnan ajoympäristö, joka pystyy suorittamaan hakuja ja palauttamaan haluttuja tietomalleja. GraphQL on Facebookin aloittama avoimen lähdekoodin projekti.
Rajapintojen sisältöä päivitetään noin kerran minuutissa.
Kaikki aikaleimat ovat UTC ajassa ja ilmoitetaan ISO 8601 standardin mukaisessa formaatissa.
Kaikki koordinaattitiedot ilmoitetaan GeoJSON standardin mukaisessa formaatissa.
Käytössä olevat GraphQL-rajapinnat
Alla on kuvattu kaikki Oulun liikennedatan julkiset GraphQL-rajapinnat.
- Kaupunkipyöräasemat
- Pyöräilijä ja kävelijä määrät
- Kunnossapitotiedot
- Häiriötiedotteet
- Kaupunkisääasemat
Avoimet rajapinnat
Osoite:
https://api.oulunliikenne.fi/proxy/graphql
Käyttö:
GraphQL on suunniteltu käytettävän siihen tarkoitetuilla ohjelmistokehityspaketeilla jotka sisältävät toimintoja kuten kutsujen validointia sekä kutsujen niputtamista. Hakuja voi myös tehdä suoraan HTTP POST kutsuilla, milloin itse haku liitetään kutsun body kenttään.
Yleisesti käytetyt GraphQL-ohjelmistokehityspaketit:
- Apollo
- Relay
Rajapinta tukee myös selaimessa aukeavaa graafista käyttöliittymää, joka on tarkoitettu testikäyttöön hakujen sekä vastauksien tarkasteluun. Käyttöliittymässä pystyy näkemään kaikki tietomallit sekä haut mitä rajapinta mahdollistaa. Alla olevat esimerkkihaut ovat myös suoraan kopioitavissa käyttöliittymään. Avataaksesi käyttöliittymää selaimessasi, klikkaa ylhäällä listattua rajapintaosoitetta.
Kenttäkohtaiset selitteet alla olevista esimerkkikyselyistä löytyvät rajapinnan käyttöliittymästä.
Kaupunkipyöräasemat
Oulun kaupunkipyöräasemat.
Esimerkkikysely:
query GetAllBikeRentalStations {
bikeRentalStations {
id
stationId
name
bikesAvailable
spacesAvailable
state
allowDropoff
lat
lon
}
}
Pyöräilijä ja kävelijä määrät
Oulun seudun pyöräilijä ja kävelijä laskurit.
Esimerkkikysely:
query GetAllEcoCounterSites { ecoCounterSites { id siteId name domain userType timezone interval sens channels { id siteId name domain userType timezone interval sens lat lon } } }
Yksittäisen laskurin tiedot.
id = laskurin tunniste (yksittäisen kanavan ”siteId” arvo)
domain = laskurin ryhmä
step = ryhmitys (_15m|hour|day|week|month|year)
begin = aloituspäivämäärä
end = loppumispäivämäärä
Esimerkkikysely:
query GetEcoCounterSiteData { ecoCounterSiteData( id: "100000647", domain: Oulu_kaupunki, step: month, begin: "2019-01-01T00:00:00" ) { date counts } }
Kunnossapitotiedot
Oulunliikenne.fi-palvelu tarjoaa reaaliaikaiset kunnossapitotiedot kevyeenliikenteen väylille seuraaville työtehtäville:
- Auraus
- Liukkauden torjunta
- Tasaus
- Harjaus
- Muu
Palvelun rajapinnasta voi hakea kaikki suoritetut työtehtävät halutulle ajanjaksolle joka voi olla maksimissaan 7 vuorokauden pituinen. Suoritetut työtehtävät haetaan väylätyypin perusteella:
- NON_MOTORISED (kevyenliikenteen väylät)
- MOTORISED (autoväylät)
Toteutuneet kunnossapitotyöt:
query GetMaintenanceVehicleRouteEvents { maintenanceVehicleRouteEvents(routeType:NON_MOTORISED) { id routeEventId routeType measuredTime contractId jobIds geometryId geojson } }
Rajapinta tarjoaa myös mahdollisuuden hakea kunnossapitoajoneuvojen sijaintitietoja halutulle ajanjaksolle joka voi myös olla maksimissaan 7 vuorokauden pituinen. Sijaintitiedot haetaan työsopimus ID-arvon perusteella:
- 1250 (ELYn verkko)
- 1255 (Oulun pääpyörätieverkko)
Kunnossapitoajoneuvojen sijaintitiedot:
query GetMaintenanceVehicleObservations { maintenanceVehicleObservations(contractId:1255) { vehicleNumber vehicleType timestamp contractId direction jobIds lat lon } }
Häiriötiedotteet
Oulun kaupungin häiriötiedotteet:
query GetAllTrafficAnnouncements { trafficAnnouncements { id announcementId title { fi sv en } description { fi sv en } severity status startTime endTime geojson modesOfTransport class { class subclass } trafficDirectionFreeText { fi sv en } temporarySpeedLimit duration additionalInfo detour oversizeLoad vehicleSizeLimit url imageUrls } }
Jos kentässä ”modesOfTransport” löytyy arvo ”PEDESTRIAN” tai ”BICYCLE” niin tiedote liittyy kävelyyn ja pyöräilyyn.
Kaupunkisääasemat
Oulun kaupungin sääasemat. Kevytliikenneväylillä olevien sääasemien tiedoista on saatavilla erilaisia kelitietoja, kuten esimerkiksi ilman ja tien lämpötilat sekä sadetilanne. Sääasemista löytyy myös kelikamerat mistä voi tarkastella kevytliikenneväylien tilannetta.
Tiedot päivittyvät 5 minuutin välein.
Mittausarvojen selitteet:
nimi | yksikkö | selite |
AIR_TEMPERATURE | °C | Ilman lämpötila |
AIR_RELATIVE_HUMIDITY | RH% | Ilman suhteellinen kosteus |
DEW_POINT_TEMPERATURE | °C | Kastepistelämpötila |
WIND_SPEED | m/s | Tuulen nopeus 10min keskiarvo |
WIND_DIRECTION | Degrees | Tuulen suunta 10min keskiarvo |
RAINFALL_DEPTH | mm | Laskennallinen sadesumma |
RAINFALL_INTENSITY | mm/h | Laskennallinen sateen intensiteetti |
SNOW_DEPTH_A | mm | Lumen kerrospaksuus mittaus A |
SNOW_DEPTH_B | mm | Lumen kerrospaksuus mittaus B |
SNOW_DEPTH_C | mm | Lumen kerrospaksuus mittaus C |
SNOW_DEPTH | mm | Lumen kerrospaksuus keskiarvo |
RAIN_CLASSIFICATION | Sateen luokittelu | |
ROAD_SURFACE_TEMPERATURE | °C | Tienpinnan lämpötila |
Esimerkkikysely:
query GetAllCityWeatherStations { cityWeatherStations { weatherStationId name lat lon sensorValues { name sensorId sensorValue sensorUnit measuredTime } cameras { cameraId imageUrl } } }