-
Notifications
You must be signed in to change notification settings - Fork 3
ptServer
Jan Horacek edited this page Oct 9, 2016
·
24 revisions
PT server je http server implementující REST API. Jeho účel je
- umožnit vzdálenou správu hJOPserveru,
- poskytnout rozhraní k řízení kolejiště pro studenty MENDELU.
S PT serverem se komunikuje ve formátu JSON. Veškerá dokumentace, jména endpointů, atributů a osttaně všeho jsou v češtině.
PT server je zakompilovaný v základní verzi hJOPserveru, avšak automaticky se nespouští. PT server nevyžaduje žádnou autentizaci, což by mělo být, vzhledem k vypnutému serveru by default, únosně bezpečné.
PT server umožňuje toto:
- dotazovat server na data a stav,
- bloků,
- hnacích vozidel,
- přestavít výhybku,
- řídit hnací vozidlo na základě adresy.
- Se serverem se komunikuje výhradně v kódování UTF-8.
- Server na každý požadavek vrací 200 OK.
- Chyby při zpracování požadavků jsou zaneseny do odpovědi jako
errors
objekt. Viz specifikace
Náseldující stránky obsahují specifikace objektů posílaných v požadavcích a odpovědích.
- Endpoint vrací bloky.
- Parametry:
-
stanice=id
– vrací jen bloky v dané stanici, -
typ=typ
– vrací jen bloky daného typu, -
stav=True/False
– jestli vrátit s bloky i jejich stav.
{
"bloky": [
{...}, {...}, ...
]
}
- Endpoint vrací blok
id
. - Parametry:
-
stav=True/False
– jestli vrátit s bloky i jejich stav.
{
"blok": {
...
}
}
- Endpoint vrací stav bloku
id
. - Parametry: žádné.
{
"blokStav": {
...
}
}
- Endpoint umožňuje změnit stav bloku
id
. - Odpovědí je nový stav bloku.
- Stav bloku měníme posláním nového kýženého stavu v těle požadavku.
{
"blokStav": {
"poloha": "-"
}
}
TODO: dodělat popis konkrétních požadavků
- Endpoint vrací seznam stanic.
- Parametry: žádné.
{
"stanice": [
{...}, {...}, ...
]
}
- Endpoint vrací stanici s id
id
. - Parametry: žádné.
{
"stanic": {
...
}
}
- Endpoint vrací seznam lokomotiv.
- Parametry:
-
aktivni=True/False
– jestli vrátit jen aktivní lokomotivy. Pokud není argument přítomný, vrátí všechny loko, pokud je přítomný, vrátí jen aktivní/neaktivní.
{
"loko": [
{...}, {...}, ...
]
}
- Endpoint vrací lokomotivu s adresou
addr
. - Parametry: žádné.
{
"lok": {
...
}
}
- Endpoint vrací stav lokomotivy s adresou
addr
. - Parametry: žádné.
{
"lokStav": {
...
}
}
- Endpoint umožňuje změnit stav lokmotivy s adresou
addr
. - Odpovědí je nový stav lokomotivy.
- Stav lokomotivy měníme posláním nového kýženého stavu v těle požadavku.
- Kýžený stav se od aktuálního stavu může lišit ve více parametrech, server se v takovém případě pokusí udělat nejlepší možnou akci.
{
"lokStav": {
"rychlost": 15
}
}
TODO: konkrétní změny stavů