IME-API: Campus-, bygg- og romdata
Et knippe data fra FDV-systemet Lydia er nå gjort tilgjengelig via IME-APIet. Det betyr at du maskinelt og helautomatisk kan hente data om campusene, bygningene og rommene ved NTNU.
Hvert objekt fra et API-kall inneholder data om «seg selv» og tilhørende underobjekter, med referanse til ovenforliggende objekter. Slik ser et oppslag på auditorium F1 ut:
{
"rooms": [
{
"id": 4553,
"nr": "152",
"name": "F1",
"type": "Auditorium felles",
"buildingId": 2,
"floorId": 2
}
]
}
Derfra kan man videre slå opp bygningen med ID 2, «IT-bygget, sydfløy», hvor man også vil finne detaljer om etasjen med ID 2.
I tillegg er deler av APIet rensket opp i. Tekst-dumping for debug er fjernet, bruk heller en plugin ala JSONView for å få formatert JSON-dataene på en pen måte i nettleseren. Cache-data finnes nå også som HTTP cache headers «Last-Modified» og «Expires». Bedre håndtering av 404-feil er også på plass.
Happy hacking!
\o/ – eneste jeg enda lurer på er hvordan kommer jeg meg fra lydiaCode = 8103303 til http://www.ntnu.no/kart/dragvoll/bygg-3/nivaa-3/d9 evt tilsvarende med ?id=3303 elns?
Thomas A.
6 sept 12 at 10:09
Først oppslag på LydiaCode, som er en ren sammenskriving av «pent» byggnummer og «pent» romnummer. http://www.ime.ntnu.no/api/fdv/rooms/lydiacode:8103303
Det gir romdataene:
{ "id": 10447, "nr": "3303", "name": "D9", "type": "Auditorium felles", "buildingId": 7, "floorId": 460 }Deretter videre oppslag på bygg med id 7: http://www.ime.ntnu.no/api/fdv/buildings/id:7 som innholder (blant annet) riktig etasje.
{ "id": "7", "nr": "810", "name": "Dragvoll Bygg 1 - 6", "address": "Edvard Bulls veg 1", "builtYear": "1978", "campusId": 8, "wings": [ ... ], "floors": [ ... { "id": 460, "nr": "1033", "name": "Bygg 3, nivå 3", "rooms": [ ... ] } ... ] ... }Men selve URLen til kartet er basert på manuell navning i Typo3, så det lar seg ikke gjøre å helautomatisk få 100% match dit :/
Edit: regner egentlig med at du allerede skjønte det med oppslag og bare lurte på URLen, men jeg tok med resten for alle andre lesere
Rune M. Andersen
6 sept 12 at 11:21