REST API v1
JSON API citām sistēmām (e-žurnāliem, skolas mājaslapām, infoekrāniem, mobilajām lietotnēm). Bāzes adrese: https://api.stundusaraksts.lv/api/v1. CORS ir atļauts no jebkura domēna.
- Skolu identificē tās adrese (
slug) — tā pati, kas apakšdomēnā:rag.stundusaraksts.lv→rag. - Publicētie dati ir pieejami bez autorizācijas.
- Melnraksti, skolotāju e-pasti un izmaiņas prasa skolas API atslēgu:
Authorization: Bearer ssk_…. Atslēgas izveido skolas administrators sadaļā „API atslēgas”. - Atslēga ar tiesībām
readvar tikai lasīt,write— arī mainīt. Atslēga darbojas tikai savas skolas datiem. - Dienas:
0= pirmdiena …4= piektdiena.periodir stundas numurs no zvanu saraksta.
Lasīšana
GET
/listed-schoolsSkolas, kas izmanto Stundu sarakstu.GET
/schools/{slug}Skolas informācija.GET
/schools/{slug}/bundle?timetable={id}Viss vienā pieprasījumā: skola, zvani, klases, grupas, skolotāji, telpas, priekšmeti, versijas un aktuālās (vai norādītās) versijas stundas.GET
/schools/{slug}/{classes|groups|teachers|rooms|subjects|periods|timetables}Atsevišķi saraksti.GET
/schools/{slug}/timetables/{id|current}/lessons?class=&teacher=&room=&day=Stundas, pēc izvēles filtrētas.GET
/schools/{slug}/calendar.ics?class={id}iCalendar abonements (arī teacher=, room=, day=).Rakstīšana write atslēga
PUT
/schools/{slug}Skolas informācijas maiņa.POST
/schools/{slug}/{resource}Izveidot klasi, grupu, skolotāju, telpu, priekšmetu, zvanu vai versiju.PUT
/schools/{slug}/{resource}/{id}Daļēja labošana — sūtiet tikai maināmos laukus.DELETE
/schools/{slug}/{resource}/{id}Dzēšana.POST
/schools/{slug}/timetables/{id}/lessonsPievienot stundu. Atbildē conflicts norāda skolotāju/telpu/klašu pārklāšanos.PUT
/schools/{slug}/timetables/{id}/lessonsAizstāt visas versijas stundas ar {"lessons": [...]} — importam no plānošanas programmām.PUT
/schools/{slug}/lessons/{id}Labot stundu.DELETE
/schools/{slug}/lessons/{id}Dzēst stundu.POST
/schools/{slug}/timetables/{id}/copyKopēt versiju kā jaunu melnrakstu.Stundas formāts
{
"id": 812,
"day": 0,
"period": 3,
"duration": 1,
"subject_id": 4,
"room_id": 7,
"teacher_ids": [12, 15],
"classes": [{ "class_id": 1, "group_id": 2 }], // group_id null = visa klase
"note": null
}
Piemēri
# 10.a klases pirmdienas stundas
curl "https://api.stundusaraksts.lv/api/v1/schools/rag/timetables/current/lessons?class=10&day=0"
# Pievienot telpu ar rakstīšanas atslēgu
curl -X POST "https://api.stundusaraksts.lv/api/v1/schools/rag/rooms" \
-H "Authorization: Bearer ssk_…" -H "Content-Type: application/json" \
-d '{"name": "215", "building": "Galvenā ēka", "capacity": 28}'
Kļūdas
Kļūdas tiek atgrieztas kā application/problem+json (RFC 7807): status ir HTTP statuss, detail — paskaidrojums latviski, code (ja ir) — mašīnlasāms iemesls. Statusi: 400 nederīgi dati, 401 nav autorizācijas, 403 nav tiesību (wrong_school — atslēga citai skolai, school_disabled — skola īslaicīgi nav pieejama), 404 nav atrasts, 409 konflikts, 415 nav JSON.
{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "Nav tiesību",
"code": "wrong_school"
}