--- title: "API Dokumentace - Verze 2" date: 2026-01-28 tags: ["api", "docs", "v2"] hiddenInHomelist: true --- Tato stránka detailně popisuje **Verzi 2 (v2)** API Ječná Rozvrh. ## Endpoint: `GET /versioned/v3` Toto je hlavní endpoint, který poskytuje veškerá data o rozvrhu pro v2. ### Struktura Odpovědi Odpověď je JSON objekt, který obsahuje dva hlavní klíče: `schedule` a `status`.
Zobrazit příklad struktury odpovědi ```json { "schedule": { /* objekt denních rozvrhů */ }, "status": { /* objekt stavu */ } } ```
--- ### Datové Struktury #### Sekce: `schedule` Tato sekce je objekt, kde každý klíč představuje datum ve formátu `YYYY-MM-DD` a prvek představuje jeden den. Každý den je objekt, jehož klíče jsou `info`, `changes`, `absence`, `takesPlace` a `reservedRooms` ##### `changes` - Objekt - **Klíč:** Název třídy (např. `"A1"`) - **Hodnota:** Pole s 10 prvky, které reprezentují 10 vyučovacích hodin. - Objekt: Pokud je hodina normálně vyučována, obsahuje název předmětu nebo informaci o změně. - `null`: Pokud pro ni není záznam. Hodnota je následující objekt ```ts { text: string, backgroundColor?: string, foregroundColor?: string, willBeSpecified?: boolean } ```
Zobrazit příklad rozvrhu pro třídu A1 ```json "A1": [ { "text": "M 5 Kp(Ng)" }, null, null, { "text": "M 5 odpadá", "backgroundColor": "#DCEDD5", "foregroundColor": "#FF000000" }, null, null, null, null, null, null ] ```
##### `absence` - Pole objektů, kde každý objekt specifikuje jednu absenci. Struktura objektu je následující: - `teacher` (string | null): Celé jméno učitele, pokud je známé. - `teacherCode` (string | null): Zkratka jména učitele (např. "me", "ad"). - `type` (string): Typ absence. Může nabývat následujících hodnot: - `"wholeDay"`: Učitel chybí celý den. - `"single"`: Učitel chybí jednu vyučovací hodinu. - `"range"`: Učitel chybí v rozmezí několika hodin. - `"exkurze"`: Učitel je na exkurzi. - `"invalid"`: Záznam o absenci se nepodařilo zpracovat. - `hours` (object | number | null): Specifikuje hodiny absence. - `null`: Pro typy `wholeDay`, `exkurze`, a `invalid`. - `number` (např. `3`): Pro typ `single`. - `object` (např. `{ "from": 2, "to": 4 }`): Pro typ `range`. - `original` (string | null): Pouze pro typ `invalid`, obsahuje původní nezpracovaný text.
Zobrazit příklady absencí **Celý den:** ```json { "teacher": "Jan Novák", "teacherCode": "no", "type": "wholeDay", "hours": null } ``` **Jedna hodina:** ```json { "teacher": "Jan Novák", "teacherCode": "no", "type": "single", "hours": 1 } ``` **Rozsah hodin:** ```json { "teacher": "Jan Novák", "teacherCode": "no", "type": "range", "hours": { "from": 2, "to": 4 } } ``` **Exkurze:** ```json { "teacher": "Jan Novák", "teacherCode": "no", "type": "exkurze", "hours": null } ``` **Zastupuje:** ```json { "teacher": "Ing. Zdeněk Vondra", "teacherCode": "vn", "type": "zastoupen", "hours": null, "zastupuje": { "teacher": "David Janoušek", "teacherCode": "jk", }, }, ``` **Neplatný záznam:** ```json { "type": "invalid", "teacher": null, "teacherCode": null, "hours": null, "original": "Nezpracovatelný text" } ```
##### `takesPlace` String obsahující aktuálně probíhající akce ten den. #### `reservedRooms` Pole 10 prvků (string | null) pro jakou hodinu jsou rezervované jaké místnosti. #### `info.inWork` Boolean jestli je daná tabulka in work (příprava). #### Sekce: `status` - Stav a Metadata Objekt poskytující informace o aktuálnosti dat. - `lastUpdated` (string): Čas poslední úspěšné aktualizace dat ve formátu `HH:MM`. - `currentUpdateSchedule` (number): Interval v **minutách**, ve kterém scraper interně kontroluje a stahuje novou verzi rozvrhu. Tento interval se dynamicky mění v závislosti na denní době (kratší během vyučování, delší v noci).
Zobrazit příklad status ```json "status": { "lastUpdated": "08:30", "currentUpdateSchedule": 5 } ```