Stuudiumi API


Stuudiumi API kaudu andmete pärimine

Andme-API kasutamiseks vajad CLIENT_ID ja CLIENT_SECRET võtmeid. Võtmeid saad kasutada API päringute autentimine lehel kirjeldatud viisil.


Päringud

Kõikide päringute aadressi alguseks on https://api.ope.ee/v1.1/data/

Päring: profiili lisaväljadega kasutajate pärimine

Päringu aadress: users/list/?client=KOOLI_ID&custom_field=LISAVÄLJA_ID

Näidispäring: https://api.ope.ee/v1.1/data/users/list/?client=demo&custom_field=access_chip_expiration, kus "demo" on kooli Stuudiumi aadressi algus (demo.ope.ee), ja "access_chip_expiration" on eelnevalt kooli jaoks seadistatud profiili lisaväli (näiteks kiipkaardi aegumise kuupäev).

Päringu vastuse formaat (JSON):

{
"users": [
    {
        "id": "demo-123", // kasutaja ID
        "name_first": "Inimese",
        "name_last": "Nimi",
        "email": "meil@example.com",
        "custom_fields": {
            "access_chip_expiration": "2016-03-04"
        }
    },
    {
        "name_first": "Teise Inimese",
        "name_last": "Nimi",
        "email": "meil-2@example.com",
        "custom_fields": {
            "access_chip_expiration": "2017-09-03"
        }
    }
]
}

Päring: õpilaste ja lapsevanemate nimekiri

Päringu aadress: users/list/?client=KOOLI_ID&type=students-parents

Näidispäring: https://api.ope.ee/v1.1/data/users/list/?client=demo&type=students-parents

Päringu vastuse formaat (JSON):

{
"users": [
    {
        "id": "demo-123", // kasutaja ID,
        "group": {
            "name": "1a"
        },
        "name_first": "Õpilase",
        "name_last": "Nimi",
        "idcode": "31111111111",
        "email": "meil@example.com",
        "address": "Tänav 1-1, 10001, Tallinn",
        "parents": [ // Õpilase lapsevanemad
            {
                "id": "demo-1231",
                "name_first": "Lapsevanema",
                "name_last": "Nimi",
                "address": "Tänav 1-1, 10001, Tallinn",
                "email": "meil2@example.com",
                "idcode": "31111111112",
                "telephone": "56 123 123"
            },
            {
                "id": "demo-1231",
                "name_first": "Teise Lapsevanema",
                "name_last": "Nimi",
                "address": "Tänav 1-1, 10001, Tallinn",
                "email": "meil3@example.com",
                "idcode": "31111111113",
                "telephone": null
            }
        ]
    },
    {
        "id": "demo-124",
        "name_first": "Teise Lapse",
        "name_last": "Nimi",
        ....
    }
]
}

Päring: päevikute ja päevikute õpetajate ning õpilaste loetelu

Päringu aadress: journals/list/?client=KOOLI_ID&with_students=1

Näidispäring: https://api.ope.ee/v1.1/data/journals/list/?client=demo&with_students=1, kus "demo" on kooli Stuudiumi aadressi algus (demo.ope.ee).

NB! with_students=1 parameeter on kohustuslik.

Päringu vastuse formaat (JSON):

{
"year": 2016, // õppeaasta. (2016 tähendab õppeaastat 2015/2016)
"journals": [ // päevikud
    {
        "id": "päeviku-muutumatu-ID",
        "subject": "Eesti keel",
        "groups": ["10a", "10b"], // Päevikuga seotud klass(id)
        "teachers": [
            {
                "id": "demo-123", // kasutaja muutumatu ID
                "name_first": "Õpetaja",
                "name_last": "Nimi"
            },
            {
                "id": "demo-124",
                "name_first": "Teise Õpetaja",
                "name_last": "Nimi"
            }
        ],
        "students": [
            {
                "id": "demo-125",
                "name_first": "Õpilase",
                "name_last": "Nimi",
                "idcode": "12345678901", // võib olla ka tühi
            },
            {
                "id": "demo-126",
                "name_first": "Teise Õpilase",
                "name_last": "Nimi",
                "idcode": "12345678901",
            }
        ]
    },
    {
        // teine päevik sama struktuuriga
    },
    {
        // kolmas jne päevik sama struktuuriga
    }
]
}

Päring: Nõusolekud andmete jagamiseks

Päringu aadress data/consents/$TÜÜP. $TÜÜP väärtus on string, mille saad rakenduse registreerimisel Stuudiumilt. Nt: test-n6usolek.

Näidispäring https://api.ope.ee/v1.1/data/consents/test-n6usolek

Päringu vastuse formaat (JSON):

[
{
    "client_id":"demo1",
    "client_name":"Demo Kool",
    "last_updated_at":"2016-12-09T15:00:09+02:00", // millal viimati andmeid uuendati. Kui viimane päring oli hiljem kui see kuupäev, ei ole vaja täielikke andmeid uuesti pärida, kuna need ei ole muutunud.
    "url":"https:\/\/api.ope.ee\/v1.1\/data\/consents\/test-n6usolek?client=demo1" // aadress, kust saab pärida selle kooli täieliku nõusolekute nimekirja
},
{
    "client_id":"demo2",
    "client_name":"Teine Demo Kool",
    "last_updated_at":"2016-12-09T15:00:09+02:00",
    "url":"https:\/\/api.ope.ee\/v1.1\/data\/consents\/test-n6usolek?client=demo2"
}
]

Ühe kooli nõusolekute täieliku nimekirja saamiseks tee päring vastava kooli url aadressile.

Kooli nõusolekute päringu vastuse formaat (JSON):

[
{
    "id":"demo1-121", // selle kasutaja (õpilase) muutumatu ID Stuudiumis (ehk siis: kui "id" on sama, aga muutunud on nimi ja/või isikukood, on siiski tegu sama isikuga)
    "name_first":"Lapse", // teoorias võib ees ja/või perenimi olla tühi (andmeid haldab iga kool ise). Tühja nimega kasutajate andmeid võib vajadusel töötlemisel ignoreerida
    "name_last":"Perenimi",
    "idcode":"60412345678", // võib olla tühi
    "consents": [ // vastused nõusolekute-küsimustele selle kasutaja jaoks
        {
            "type": "alamtyyp-yks", // nõusoleku (alam)tüüp 1
            "value": true, // true = nõus, false = ei ole nõus
            "updated_at": "2016-12-09T14:23:53+02:00", // millal seda nõusolekut või keeldumist viimati muudeti
            "consent_by": { // kes andis nõusoleku (v keeldumise)
                "name_first":"Admin",
                "name_last":"Kasutaja"
            }
        },
        {
            "type": "alamtyyp-kaks", // nõusoleku (alam)tüüp 2
            "value": true,
            "updated_at":"2016-12-09T15:00:09+02:00",
            "consent_by":{
                "name_first":"Admin",
                "name_last":"Kasutaja"
            }
        }
    ]
},
{
    "id":"demo1-771",
    "name_first":"Teise Lapse",
    "name_last":"Perenimi",
    "idcode":"60412345679",
    "consents": [
        {
            "type":"alamtyyp-yks",
            "value":false,
            "updated_at":"2016-12-09T14:30:05+02:00",
            "consent_by":{
                "name_first":"Admin",
                "name_last":"Kasutaja"
            }
        }
    ]
}
]