IMEbeta

IT og utvikling ved IME-fakultetet

IME-API: Campus-, bygg- og romdata

with 2 comments

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!

Written by Rune M. Andersen

september 6th, 2012 at 7:06 am

Posted in Tjenester

Tagged with , , , , , , ,

2 Responses to 'IME-API: Campus-, bygg- og romdata'

Subscribe to comments with RSS or TrackBack to 'IME-API: Campus-, bygg- og romdata'.

  1. \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

  2. 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

Leave a Reply