Stundu saraksts · API

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.

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"
}