miniSTAG | Toto nejsou oficiální stránky Studijní agendy :-). |
Přístup k datům funguje na základě zaslání vhodně sestaveného požadavku na určitou URL adresu. Jako usnadnění jsou u tabulek na WWW stránkách miniSTAGu (vždy pod tabulkou) uvedeny odkazy na "formulář" usnadňující přístup k tomuto rozhraní.
Pozn: Získavat data způsobem popsaným na této stránce je možné i z již přefiltrovaných tabulek.
http://stat.kma.zcu.cz/demoStag/api/a za kterou následuje otazník a pak seznam parametrů (nebo dvojic parametr=hodnota) oddělených znakem &.
Pomocí parametrů určíme
http://stat.kma.zcu.cz/demoStag/api/?q=StudP|KMA|MA2|2009|LS&pol=jm,prijm&htmlVyzkoušet
http://stat.kma.zcu.cz/demoStag/api/?q=DiplK|KMA|2008&pol=jm,prijm,tit,vedprijm&texVyzkoušet
...?q=StudP|KMA|TP|2008|LS&format=Student [stud]: [jm] [prijm][9][zkr][10]Vyzkoušet Vyzkoušet
...?q=StudP|KMA|TP|2008|LS&format=[jm] [prijm] <[ori]@students.zcu.cz>,[10]
a můžeme také používat jednoduché podmínky, např. označit kombinované studenty, vynechat studenty se jménem Pavel, nebo se pokusit naivně o výpis studentek
...?q=StudP|KMA|TP|2008|LS&format=[prijm] [jm][?forma=K] - komb.[/forma][10]Vyzkoušet Vyzkoušet Vyzkoušet
...?q=StudP|KMA|TP|2008|LS&format=[!jm=Pavel][i]. [jm] [prijm][10][/jm]
...?q=StudP|KMA|TP|2008|LS&format=[?prijm~*ova][jm] [prijm][10][/prijm]
...?q=StudP|KMA|FIPM|2007||[roc=2]&format=[i]. [stud] [jm] [prijm][@A=StudP|KMA|MA2|2007][?stud=[A.stud]] *[/stud][/A][10]Vyzkoušet
Tato další tabulka dokonce může být u každého studenta jiná (doba načtení dat pak bude příslušně delší) - např.
...?q=StudP|KMA|DPMA|2009&format=[stud] [jm] [prijm] [zkr][@A=PredmS|[stud]|2009][!A.kat=KMA][10] [A.kred] [A.kat] [A.predm][9][A.tit][/A.kat][/A][10][10]Vyzkoušet
...?q=StudT|777197&format=[stud] [jm] [prijm][@A=TermP|KMA|M1|2010][?A.plat=A][?A.typ=Zk][@B=StudT|[A.term]][?stud=[B.stud]][10] [A.den] [A.dat] - [A.prijm][/stud][/B][/A.typ][/A.plat][/A][10][10]Vyzkoušet
...?q=StudT|777797&format=[stud] [jm] [prijm][@A=TermS|[stud]|2010][?A.plat=A][?A.typ=Zk][10] [A.den] [A.dat][9] [A.kat]/[A.predm] - [A.prijm][/A.typ][/A.plat][/A][10][10]Vyzkoušet
...?q=StudP|KMA|DPMA|2009<&format=[stud] [jm] [prijm] [zkr][@C=DiplK|KMA|2009][?stud=[C.stud]][10] [C.tit] ([C.vedprijm])[/stud][/C][@A=PredmS|[stud]|2009][?A.kred=0][10] [A.kat]/[A.predm][9][A.tit][/A.kred][/A][10][10]Vyzkoušet
...?q=InfoPK|KMA|2010&format=[?zk~statn*][kat]/[predm] [tit][10]----------------------------------[@B=StudP|[kat]|[predm]|2010][10][B.stud] [B.jm] [B.prijm][/B][10][10][/zk]Vyzkoušet
...?q=TabCo|kat,predm|KMA,PSF;KIV,FIN&csvVyzkoušet Vyzkoušet
...?q=TabCo|kat,predm|KMA,PSF;KIV,FIN&format=[predm][10][@A=StudP|[kat]|[predm]|2013][A.stud] [A.jm] [A.prijm][10][/A]
...?q=CountTab|AkceP%7CKMA%257CPSA%257C2020||typ,uc,prijm&csvVyzkoušet Vyzkoušet
...?q=SumTab|AkceP%257CKMA%257CPSA%257C2020|obs%2Cplan|typ%2Cuc%2Cprijm&format=[predm][10][@A=StudP|[kat]|[predm]|2013][A.stud] [A.jm] [A.prijm][10][/A]
Hodnoty parametrů by měly být zakódované pro použití v URL (týká se asi hlavně speciálních znaků, případně písmen s diakritikou).
Označení dat, která chceme získat. Vždy označení tabulky a parametry, ve tvaru
<co><čeho>|<par1>|<par2>|...|<rok>|<semestr>|<filtr>
Např. seznam studentů předmětu KMA/MA1 v LS 2009/2010 (<co> jsou studenti, <čeho> je předmětu), případně z nich jen druháci a prezenční
q=StudP|KMA|MA1|2009|LSJsou to ta označení, která lze na WWW stránkách miniSTAGu vidět jako parametr prev v URL adrese odkazované stránky při zvolení některé položky v seznamu. Jako tabulku do parametru q lze použít i umělou tabulku TabCo|..|...|
q=StudP|KMA|MA1|2009|LS|[roc=2][forma=P]
Nejsnazší asi je najít vhodnou tabulku na WWW stránkách miniSTAGu a použít v úvodu zmíněný odkaz pod příslušnou tabulkou. Tyto odkazy právě označení konkrétní tabulky do formuláře vyplňují.
Seznam položek, které se (v případě předdefinovaných formátů) mají vypsat.
Např.
pol=jm,prijm,stud
Názvy a význam položek je třeba vyspekulovat, popř. vyhledat v předdefinovaných výstupech (php, viz níže), několik nejčastějších:
Není-li uvedena žádná položka, vypíšou se položky všechny.
[i] číslo řádku
[jm] jméno
[prijm] příjmení
[stud] osobní číslo studenta
[uc] číslo učitele ve STAGu
[ori] orion login
[roc] ročník studia[kat] katedra
[predm] předmět
[rok] rok
[sem] semestr
[kod] kód studijního programu
[cislo] číslo oboru (obsahuje i písmena :-)
[zkr] zkratka oboru
...
Formátování výstupu lze zajistit buď pomocí textu s formátovacími značkami (zapsaného do parametru format), anebo prostřednictvím předdefinovaných formátů. Předdefinový formát zvolíme uvedením některého z parametrů
Které položky a v jakém pořadí se mají vypsat, lze upřesnit pomocí parametru pol.
Je možné také psát např.
json=zpracuj resp. php=zpracujzpůsobí výstup ve tvaru
zpracuj ( ... ) resp. <?php zpracuj ( ... ) ?>Podobně tex=\příkaz způsobí "přejmenování" defaultního \entry, dostaneme řádky začínající nikoli \entry..., ale \příkaz....
A podobně zápis csv=oddělovač umožňuje zvolit místo středníku jiný oddělovač.
Pokud není uveden žádný z předdefinovaných formátů (a ani parametr format), předpokládá se html.
Vypsat (v případě předdefinovaných formátů) položky nikoli po řádcích, ale po sloupcích. Tedy např. nejdříve všechna jména, pak všechna příjmení.
Jakým způsobem mají být zformátována data z každého řádku tabulky (alternativa k předdefinovaným formátům). Text, do kterého budou na místech označených hranatými závorkami dosazeny konkrétní hodnoty z tabulky.
Např. z některé z tabulek studentů (StudP, StudA...) lze vyrobit seznam emailových adres (jméno a příjmení plus adresa, každá na jednom řádku) pomocí
kde ve druhém případě výpis proběhne jen u těch studentů, kteří mají "nenulový" orion login. Další příklady v úvodu.format=[jm] [prijm] <[ori]@students.zcu.cz>,[10] format=[?ori][jm] [prijm] <[ori]@students.zcu.cz>,[10][/ori]
Text uvedený v parametru format může obsahovat značky:
[?název]...[/název] [!název]...[/název] |
[?název=hodnota]...[/název] [!název=hodnota]...[/název] |
máme pak k dispozici [A.jm], [A.prijm][@A=StudP|KMA|MA1|2009]
Podmínky lze do sebe vnořovat, ale pouze pokud se týkají různých položek. V testovacích hodnotách nemohou být hranaté závorky... Správnost zápisu formátu se nijak nekontroluje. Nedodržení uvedených pravidel může projít, nebo vést k nepředvídatelným efektům.
Pokud bude současně s parametrem format uveden i některý z předdefinovaných formátů, přednost má format. Nicméně uvedení parametru html nebo tex současně s format znamená, že případné speciální znaky obsažené v dosazovaných položkách budou ve výstupu zakódovány podobně jako u těchto formátů.
Ignorovat (v případě vlastního formátu) mezerové znaky (mezera, tabulátor, odřádkování...) přítomné v textu parametru formát mezi značkami. Zároveň je možné posloupnost mezerových znaků zobrazit pomocí značky složené z posloupnosti takových znaků (taková značka je běžně - při neuvedení parametru ignors - ignorovaná). Parametr ignors tak např. způsobí, že řetězec [jmeno] [prijmeni] bude zobrazen bez mezery, tedy např. JosefNovák, zatímco potřebujeme-li mezery mezi jménem a příjmením zachovat, můžeme uvést [jmeno][ ][prijmeni].
Tento parametr je možné využít pro zvýšení přehlednosti zápisu parametru format.
Vstupní kódování. Kódování češtiny, v němž jsou zadány parametry q a format (ano, existují katedry a předměty, které mají ve zkratce znaky s diakritikou).
MiniSTAG pracuje v kódování iso-8859-2. Zadáváte-li parametry v kódováním jiném, je třeba ho uvést. Např.
ie=win nebo ie=utf8Možnosti viz parametr oe. Pokud vstup nebude odpovídat zvolenému kódování, výsledky budou patrně nesprávné.
Výstupní kódování. Na výběr jsou
il2 - ISO-8859-2 (latin2)Pokud se díváte na výsledky WWW prohlížečem, za výstupní kódování nejspíš nemusíte zadávat nic.
win - windowsovské CP1250
dos - dosovská CP852
utf8 - UTF8
asc - výstup bez háčků a čárek (na vstupu raději nezkoušet)
TabCo|prvni,druhy|a,b; c,d; e,f|reprezentuje tabulku
V označeních sloupečků lze použít pouze písmenka bez diakritiky a číslice, a nelze použít názvy i a ind. Jinak (nebo pokud nejsou uvedeny) bude použíto defaultní označení c1, c2,...
i prvni druhy 1 a b 2 c d 3 e f
Umělá tabulka nalezne použití i při filtrování k zapsání podmínky nebo.
CountTab|zdroj|sloupecky|podle|kde zdroj je označení zdrojové tabulky, jejíž data se mají použít (pozor, její označení musí být URL-zakódované), sloupecky je seznam čárkami oddělených názvů sloupečků , jejichž součet či průměr nás zajímá (v případě CountTab necháme prázdné - automaticky se vygenerují sloupečky n a proc) a podle je seznam čárkami oddělených názvů sloupečků, podle jejichž hodnot se má tabulka rozdělit a které také budou uvedeny ve výstupu (bude-li tento seznam prázdný, spočte se požadovaná statistická hodnota souhrnně za celou tabulku).
SumTab|zdroj|sloupecky|podle|
MeanTab|zdroj|sloupecky|podle|
Přesněji,
miniSTAG -- M. Friesl, 2009-2025
Zdroj dat: DEMO Webové služby nad IS/STAG
2025-04-05 08:52:41