Examin versioon 3.2.4 on toteutettu REST-rajapintaan kolme uutta resurssia, jotta varaus- ja tilatietoja voidaan hakea ulkopuolisiin toteutuksiin.
Muutokset rajapintaan
päiväys | EXAM versio | muutos |
---|---|---|
11.9.2023 | 6.2.1 | Varaustietorajapinnan palauttama noShow-tieto on tätä nykyä enrolment-objektin alla eikä juuritasolla johtuen tietomallin muutoksesta EXAM:ssa. |
23.2.2021 | 5.3.2 |
|
5.11.2020 | 5.3.0 | Varaustietorajapinnan vastausten startAt ja endAt sekä startTime ja endTime aikatiedot ISO 8601 standardin mukaisina UTC aikoina (aiemmin millisekunteina/Unix-aikaleimoina) |
3.10.2016 | 3.2.4 | Alkuperäinen rajapinta |
Varaukset
Hae opiskelijoiden tekemät tenttivaraukset
REQUEST
URL: /integration/reservations
Metodi: GET
Query parameters:
- start: näytä varaukset jotka alkavat aikaisintaan
- vapaaehtoinen
- muoto: ISO-8601
- end: näytä varaukset jotka päättyvät viimeistään
- vapaaehtoinen
- muoto: ISO-8601
- roomId: näytä varaukset tilaan
- vapaaehtoinen
- muoto: tilan id
Esim: GET /integration/reservations?start=2016-05-01&end=2016-05-31&roomId=123
RESPONSE
content-type: application/json
status: 200 - OK
esimerkkivastaus EXAM versiot 6.2.1 alkaen:
- noShow-tieto enrolment-objektin alla juuritason sijasta
[ { "startAt": "2016-06-08T06:10:00.000Z", "endAt": "2016-06-08T06:55:00.000Z", "enrolment": { "noShow": true, "exam": { "name": "Nuorten kielenkäyttö", "examOwners": [ { "email": "sannaope@oppilaitos.fi", "lastName": "Ope", "firstName": "Sanna" }, { "email": "sallaope@oppilaitos.fi", "lastName": "Opettaja", "firstName": "Salla" }, { "email": "olliope@oppilaitos.fi", "lastName": "Opettaja", "firstName": "Olli" } ] } }, "machine": { "name": "Kone 3", "otherIdentifier": null, "ipAddress": "", "room": { "name": "Pääkirjasto JY", "roomCode": "B44412" } }, "user": { "email": "saulistudent@oppilaitos.fi", "userIdentifier": null, "lastName": "Student", "firstName": "Sauli" } } ]
esimerkkivastaus EXAM versiot 5.3.0-6.2.0:
- startAt ja endAt aikatiedot ovat ISO 8601 standardin mukaisina UTC aikoina
[ { "startAt": "2016-06-08T06:10:00.000Z", "endAt": "2016-06-08T06:55:00.000Z", "noShow": true, "enrolment": { "exam": { "name": "Nuorten kielenkäyttö", "examOwners": [ { "email": "sannaope@oppilaitos.fi", "lastName": "Ope", "firstName": "Sanna" }, { "email": "sallaope@oppilaitos.fi", "lastName": "Opettaja", "firstName": "Salla" }, { "email": "olliope@oppilaitos.fi", "lastName": "Opettaja", "firstName": "Olli" } ] } }, "machine": { "name": "Kone 3", "otherIdentifier": null, "ipAddress": "", "room": { "name": "Pääkirjasto JY", "roomCode": "B44412" } }, "user": { "email": "saulistudent@oppilaitos.fi", "userIdentifier": null, "lastName": "Student", "firstName": "Sauli" } } ]
esimerkkivastaus EXAM versio 5.2.1 ja aikaisemmat
- startAt ja endAt aikatiedot ovat UNIX timestamp muodossa
[ { "startAt": 1465366200000, "endAt": 1465368900000, "noShow": true, "enrolment": { "exam": { "name": "Nuorten kielenkäyttö", "examOwners": [ { "email": "sannaope@oppilaitos.fi", "lastName": "Ope", "firstName": "Sanna" }, { "email": "sallaope@oppilaitos.fi", "lastName": "Opettaja", "firstName": "Salla" }, { "email": "olliope@oppilaitos.fi", "lastName": "Opettaja", "firstName": "Olli" } ] } }, "machine": { "name": "Kone 3", "otherIdentifier": null, "ipAddress": "", "room": { "name": "Pääkirjasto JY", "roomCode": "B44412" } }, "user": { "email": "saulistudent@oppilaitos.fi", "userIdentifier": null, "lastName": "Student", "firstName": "Sauli" } } ]
Tilat
Hae järjestelmän tenttitilat
REQUEST
URL: /integration/rooms
Metodi: GET
Query parameters: EI
Esim: GET /integration/rooms
RESPONSE
content-type: application/json
status: 200 - OK
esimerkkivastaus EXAM versioissa 5.3.0 alkaen:
- startTime ja endTime aikatiedot ovat ISO 8601 standardin mukaisina UTC aikoina
- timezoneOffset on millisekunteina
{ "id": 1, "name": "Pääkirjasto JY", "roomCode": "B44412", "buildingName": "Pääkirjasto", "campus": "Seminaarinmäki", "organization": null, "mailAddress": { "id": 1, "street": "Vapaudenkatu 123", "zip": "40100", "city": "Jyväskylä", "objectVersion": 1 }, "defaultWorkingHours": [ { "id": 7449, "startTime": "1970-01-01T06:00:00.000Z", "endTime": "1970-01-01T18:00:00.000Z", "timezoneOffset": 7200000, "weekday": "THURSDAY", "objectVersion": 1 }, { "id": 7446, "startTime": "1970-01-01T06:00:00.000Z", "endTime": "1970-01-01T18:00:00.000Z", "timezoneOffset": 7200000, "weekday": "MONDAY", "objectVersion": 1 }, { "id": 7447, "startTime": "1970-01-01T06:00:00.000Z", "endTime": "1970-01-01T18:00:00.000Z", "timezoneOffset": 7200000, "weekday": "TUESDAY", "objectVersion": 1 }, { "id": 7448, "startTime": "1970-01-01T06:00:00.000Z", "endTime": "1970-01-01T18:00:00.000Z", "timezoneOffset": 7200000, "weekday": "WEDNESDAY", "objectVersion": 1 }, { "id": 7451, "startTime": "1970-01-01T06:00:00.000Z", "endTime": "1970-01-01T14:00:00.000Z", "timezoneOffset": 7200000, "weekday": "SATURDAY", "objectVersion": 1 }, { "id": 7450, "startTime": "1970-01-01T06:00:00.000Z", "endTime": "1970-01-01T16:00:00.000Z", "timezoneOffset": 7200000, "weekday": "FRIDAY", "objectVersion": 1 } ], "transitionTime": "0", "accessible": false, "roomInstruction": "Ohjeita tilasta.Tilaan ei saa viedä mukanaan mitään muuta kuin pakolliset lääkkeet. Tilasta ei saa poistua kesken tentin. Tilassa on kameravalvonta.", "roomInstructionEN": "Guidance in English", "roomInstructionSV": "Ohjeet ruotsiksi", "contactPerson": null, "videoRecordingsURL": null, "statusComment": null, "outOfService": false, "state": "SAVED", "examMachines": [ { "id": 9, "name": "Kone 3", "otherIdentifier": null, "accessibilityInfo": null, "accessible": false, "ipAddress": "", "surveillanceCamera": null, "videoRecordings": null, "expanded": false, "statusComment": null, "archived": false, "outOfService": false, "objectVersion": 7 }, { "id": 881, "name": "Kone 12", "otherIdentifier": null, "accessibilityInfo": null, "accessible": false, "ipAddress": "", "surveillanceCamera": null, "videoRecordings": null, "expanded": false, "statusComment": null, "archived": false, "outOfService": false, "objectVersion": 19 } ], "expanded": false, "localTimezone": "Europe/Helsinki", "objectVersion": 1 }
esimerkkivastaus EXAM versioissa 5.2.1 ja aikaisemmissa
- startAt, endAt ja timezoneOffset aikatiedot ovat millisekunteina
{ "id": 1, "name": "Pääkirjasto JY", "roomCode": "B44412", "buildingName": "Pääkirjasto", "campus": "Seminaarinmäki", "organization": null, "mailAddress": { "id": 1, "street": "Vapaudenkatu 123", "zip": "40100", "city": "Jyväskylä", "objectVersion": 1 }, "defaultWorkingHours": [ { "id": 7449, "startTime": 21600000, "endTime": 64800000, "timezoneOffset": 7200000, "weekday": "THURSDAY", "objectVersion": 1 }, { "id": 7446, "startTime": 21600000, "endTime": 64800000, "timezoneOffset": 7200000, "weekday": "MONDAY", "objectVersion": 1 }, { "id": 7447, "startTime": 21600000, "endTime": 64800000, "timezoneOffset": 7200000, "weekday": "TUESDAY", "objectVersion": 1 }, { "id": 7448, "startTime": 21600000, "endTime": 64800000, "timezoneOffset": 7200000, "weekday": "WEDNESDAY", "objectVersion": 1 }, { "id": 7451, "startTime": 21600000, "endTime": 50400000, "timezoneOffset": 7200000, "weekday": "SATURDAY", "objectVersion": 1 }, { "id": 7450, "startTime": 21600000, "endTime": 57600000, "timezoneOffset": 7200000, "weekday": "FRIDAY", "objectVersion": 1 } ], "transitionTime": "0", "accessible": false, "roomInstruction": "Ohjeita tilasta.Tilaan ei saa viedä mukanaan mitään muuta kuin pakolliset lääkkeet. Tilasta ei saa poistua kesken tentin. Tilassa on kameravalvonta.", "roomInstructionEN": "Guidance in English", "roomInstructionSV": "Ohjeet ruotsiksi", "contactPerson": null, "videoRecordingsURL": null, "statusComment": null, "outOfService": false, "state": "SAVED", "examMachines": [ { "id": 9, "name": "Kone 3", "otherIdentifier": null, "accessibilityInfo": null, "accessible": false, "ipAddress": "", "surveillanceCamera": null, "videoRecordings": null, "expanded": false, "statusComment": null, "archived": false, "outOfService": false, "objectVersion": 7 }, { "id": 881, "name": "Kone 12", "otherIdentifier": null, "accessibilityInfo": null, "accessible": false, "ipAddress": "", "surveillanceCamera": null, "videoRecordings": null, "expanded": false, "statusComment": null, "archived": false, "outOfService": false, "objectVersion": 19 } ], "expanded": false, "localTimezone": "Europe/Helsinki", "objectVersion": 1 }
Aukiolot
Hae huoneen aukioloajat
REQUEST
URL: /integration/rooms/:id/openinghours
Metodi: GET
Path parameters:
- id, huoneen id
Query parameters:
- date: näytä poikkeusaukioloajat, jotka osuvat tälle kuulle
- pakollinen
- muoto: ISO-8601
Esim: GET /integration/rooms/1/openinghours?date=2016-05-01
RESPONSE
content-type: application/json
status: 200 - OK, 404 - huonetta ei löydy id:llä, 400 - hakuparametri (date) puuttuu
esimerkkivastaus EXAM versioissa 5.3.0 alkaen:
- startTime ja endTime aikatiedot ovat ISO 8601 standardin mukaisina UTC aikoina
- timezoneOffset on millisekunteina
{ "id": 1, "name": "Tenttiakvaario Pegasus", "roomCode": "IT101", "buildingName": "Oulun yliopiston päärakennus", "campus": "Linnanmaa", "organization": { "id": 1 }, "mailAddress": { "id": 1 }, "defaultWorkingHours": [ { "id": 1, "startTime": "1970-01-01T08:00:00.000Z", "endTime": "1970-01-01T16:00:00.000Z", "timezoneOffset": 7200000, "weekday": "MONDAY", "objectVersion": 1 } <... SNIP ...> ], "calendarExceptionEvents": [ { "id": 1, "startDate": "2016-07-15T11:50:32.000Z", "endDate": 1471261832900 "2016-08-15T11:50:32.000Z", "startDateTimezoneOffset": 0, "endDateTimezoneOffset": 0, "outOfService": false, "massEdited": false, "objectVersion": 1 } ], "transitionTime": "5", "accessible": true, "roomInstruction": "Tilaan ei saa tuoda juomia tai ruokia.", "roomInstructionEN": null, "roomInstructionSV": null, "contactPerson": "Kiinteistöinsinööri Timppa Vaksi. puh. 040 123 4567", "videoRecordingsURL": "www.utu.fi/videot", "statusComment": null, "outOfService": false, "state": null, "expanded": false, "localTimezone": "Europe/Helsinki", "objectVersion": 1 }
esimerkkivastaus EXAM versioissa 5.2.1 ja aikaisemmissa
- startAt, endAt ja timezoneOffset aikatiedot ovat millisekunteina
{ "id": 1, "name": "Tenttiakvaario Pegasus", "roomCode": "IT101", "buildingName": "Oulun yliopiston päärakennus", "campus": "Linnanmaa", "organization": { "id": 1 }, "mailAddress": { "id": 1 }, "defaultWorkingHours": [ { "id": 1, "startTime": 28800000, "endTime": 57600000, "timezoneOffset": 7200000, "weekday": "MONDAY", "objectVersion": 1 } <... SNIP ...> ], "calendarExceptionEvents": [ { "id": 1, "startDate": 1468583432900, "endDate": 1471261832900, "startDateTimezoneOffset": 0, "endDateTimezoneOffset": 0, "outOfService": false, "massEdited": false, "objectVersion": 1 } ], "transitionTime": "5", "accessible": true, "roomInstruction": "Tilaan ei saa tuoda juomia tai ruokia.", "roomInstructionEN": null, "roomInstructionSV": null, "contactPerson": "Kiinteistöinsinööri Timppa Vaksi. puh. 040 123 4567", "videoRecordingsURL": "www.utu.fi/videot", "statusComment": null, "outOfService": false, "state": null, "expanded": false, "localTimezone": "Europe/Helsinki", "objectVersion": 1 }
11 Comments
Unknown User (vivalton@oamk.fi)
Olisiko mahdollista saada vielä rajapintaan /integration/reservations yhdeksi parametriksi huone noiden aikojen lisäksi ?
Matti Lupari
Joo voin mä sen lisätä. Menee tunteroinen että saan vietyä palvelimelle
Matti Lupari
Valmista tuli
Unknown User (vivalton@oamk.fi)
Kiitoksia
Unknown User (vivalton@oamk.fi)
Seuraava huomio:
Voisiko varauksiin saada myös joko alkuaika/loppuaika tiedon muodossa 2007-11-20T22:19:17+02:00 tai vaihtoehtoisesti tiedon aikavyöhykkeestä minkä aikana se tieto on annettu.
Unknown User (timohak@oamk.fi)
Tämä nelosversion rajapinta tarjoaa ilmeisesti nyt myös ne aktiiviset tentit? Ei onnistuttu kaivamaan niitä tuolta, miten ne tiedot saa kaivettua rajapinnasta?
Unknown User (helsal@utu.fi)
Ollaan parhaillaan tekemässä aktiivisten tenttien rajapintaa Nettiopsuun ja tuli kysymys tentin ilmoittautumislinkistä. Jotta opiskelija voidaan ohjata Nettiopsussa näytettävästä aktiivisten tenttien listasta ko. tentin linkistä suoraan tentin ilmoittautumissivulle Examiin tarvitaan ilmoittautumislinkin yksilöivä loppuosa. Voi olla että on tyhmä kysymys, mutta saako sen nyt myös rajapinnasta? Missä tämä aktiivisten tenttien rajapinta onkaan kuvattu?
Unknown User (anderson@csc.fi)
Täältä löytyy: Aktiiviset tentit -rajapinta
Matti Mäkelä
Hei! Meillä on aikomus ottaa varaustietokalenteri käyttöön ja välttääksemme ylimääräistä selvittelytyötä kysyisin, että olisiko meidän mahdollista saada vinkkejä / ohjeita tai jopa valmista pohjaa tämän toteutuksen perustaksi?
Marjut Anderson
Keskitetysti ei ole tarjolla toteutusta. Kannattaa kysellä kehittäjäryhmän kk-palaverissa tai Flowdockissa muilta korkeakouluilta vinkkejä/pohjaa toteutukselle. Marjut
Matti Mäkelä
Kiitos asian varmistamisesta! Sainkin asian jo vireille myös meillä.