DISOD API

Jednoduché rozhraní pro vyhledání personálu vlaku. Každé úspěšné vyhledání server automaticky uloží do malé databáze SQLite. Při dalším vyhledání stejného vlaku se aktuální výsledek vrátí společně s jeho historií.

Rychlý příklad

Chcete-li vyhledat vlak číslo 351, pošlete serveru požadavek:

curl -X POST https://zvonek-9316.rostiapp.cz/api/train -H "Content-Type: application/json" -d '{"train":"351"}'

Odpověď obsahuje údaje o vlaku, aktuální a odstoupený personál a také pole history s předchozími vyhledáními.

Dostupné adresy

POST /api/train

Vyhledá vlak podle jeho čísla. Číslo musí obsahovat pouze číslice. Server se dotáže služby DISOD, výsledek uloží do SQLite databáze a vrátí ho spolu s historií stejného vlaku.

Co poslat

Tělo požadavku musí být ve formátu JSON a obsahovat položku train:

{
  "train": "351"
}

Co dostanete zpět

Odpověď obsahuje zejména:

Historie vyhledávání

Každá položka v history obsahuje přesný čas searched_at a uložený výsledek v položce result. Čas je uložen v UTC ve formátu ISO 8601.

Možné chyby

GET /api/train/<číslo>/history

Vrátí pouze uloženou historii konkrétního vlaku. Tento požadavek se znovu nedotazuje služby DISOD.

Příklad:

curl https://zvonek-9316.rostiapp.cz/api/train/351/history

GET /api/health

Ověří, zda aplikace běží, zda jsou dostupné klientské certifikáty a zda server vidí databázový soubor.

Příklad:

curl https://zvonek-9316.rostiapp.cz/api/health

GET /api/docs

Zobrazí tuto dokumentaci v podobě běžné webové stránky. Dokumentace už není vracena jako JSON.

Význam kódů funkcí

Pokud DISOD vrátí neznámý kód, server ho nezahodí. V aplikaci se zobrazí jako „Neznámá funkce (kód X)“.

Ukládání historie

Historie se ukládá do souboru: /srv/app/disod_history.sqlite3

Databáze používá SQLite, takže není potřeba instalovat samostatný databázový server. Při každém novém vyhledání se vytvoří nový historický záznam; starší záznamy se nepřepisují.

Historie se řadí od nejnovějšího vyhledání po nejstarší.