Věcný obsah, základní pojmy - Web API
API rozhraní systému IS FLORES (dále jen Web API) je otevřené rozhraní nad systémem IS FLORES postavené na principech REST a webových technologiích (HTTP protokolu ). Umožňuje IS FLORES propojit s jinými aplikacemi (e-shopy, webové portály apod.) a zařídit jejich automatickou vzájemnou komunikaci. Automatizace firemních procesů výrazně šetří rutinní lidskou práci, omezuje chyby.
Umožňuje komunikaci s jinými systémy prostřednictvím protokolu HTTP (verze 1.1) a http metod. Jedná se o RESTful rozhraní. Sestává z několika komponent, z nichž každá je samostatným serverem HTTP (komponenty jako takové mezi sebou komunikují také HTTP protokolem). Pro provoz Web API je nutné mít komponenty správně nakonfigurovány. Viz Nastavení Web API.
Co mj. přináší?
- Umožňuje rozložení zátěže na více serverů a přináší tak škálovatelnost a vysokou dostupnost.
- Obsahuje výkonný dotazovací jazyk, pomocí kterého lze získat přesně ta data, která uživatel potřebuje.
- Umožňuje komunikaci s IS FLORES z libovolného programovacího jazyka a operačního systému.
- Implementuje standard Swagger (OpenAPI).
Co je vlastně Web API laicky, viz Co je vlastně Web API a K čemu slouží.
Jedním z požadavků uživatelů na desktopové ekonomické systémy je otevřené rozhraní, tj. nějaká technologie, která jej zpřístupní a umožní importovat a exportovat data, příp. další operace. Výměna dat se v praxi většinou provádí vlastním formátem postaveným na XML, CSV nebo JSON, přičemž ke komunikaci se využívají různá rozhraní:
- COM/DCOM/ActiveX/OLE: technologie, které jsou velmi používané ve Windows platformě. Nevýhodou je jednak omezenost použití na jednu platformu (Windows) a jednak poměrná složitost.
- Pouštění z příkazové řádky: celkem originální postup, kdy připravíme XML a spustíme program, který si data naimportuje. Nevýhodou tohoto řešení je, že neumožňuje síťový přístup, anebo jen velmi omezeně.
- WebServices: poměrně silný kandidát, který je dnes hojně využíván napříč programovacími jazyky a platformami. Slabou stránkou tohoto rozhraní je složitost.
- REST API: rozhraní postavené na webových technologiích (HTTP), velmi jednoduché na používání. Pro jeho prozkoumání a také vyvolání stačí uživateli běžný webový prohlížeč. Protokol HTTP umožňuje velký rozsah funkcí. Mimo jiné nabízí autorizaci, cachování, expiraci či vysokou škálovatelnost.
- aj.
Servery podporují http content-negotiation, v současnosti je ale jediným podporovaným formátem JSON.
Web APIumožňuje práci s daty ve formátech, které je možné bezpečně serializovat do formátu JSON - konkrétně dtInteger, dtSmallInt, dtWord, dtInt64, dtFloat, dtBCD, dtCurrency, dtBoolean, dtDate, dtDateTime, dtTime, dtString, dtMemo, dtFmtMemo, dtBlob, dtVarBytes, dtBytes, dtTypedBinary, dtGraphic a dtGuid (ne všechny datové typy jsou v systému IS FLORES skutečně používány).
Rozdíly proti stávajícím webovým službám (webovému API) IS FLORES:
-
Vše, co potřebujete k provozu API je k dispozici v rámci instalace IS FLORES, dostupné po nainstalování IS FLORES.
V posledních verzích vč. podpory https protokolu (tj. není nutno předřazovat ještě nějaký externí WS jako proxy).
- Neprogramujete (prostřednictvím skriptování) na straně IS FLORES. Tj. veškeré objekty jsou ve výchozím stavu k dispozici a manipulujete s nimi deklarativně, tj. posíláte Web API nějaký JSON na určitou URL a tím vlastně říkáte, co chcete, aby se s daným Business objektem (BO) stalo.
- Licencování - REST API systému IS FLORES je licencováno počtem uživatelů, kteří k němu mají přístup. (U webového API webových služeb je ekvivalent Workera spuštěn pod jedním uživatelem, a když je potřeba přehlásit uživatele, tak je třeba vypnout celého klienta a znovu spustit. Zde se Worker umí za běhu přepínat (viz dále autentizace uživatele).
Web API jako celek sestává z několika komponent, všechny jsou k dispozici v adresáři, ve kterém je nainstalován systém IS FLORES (klient).
Klient aplikačního serveru systém IS FLORES, základní komponenta, která obstarává vykonávání požadavků. Je možné ji používat samostatně pro testovací účely – stačí spustit s parametrem --app. Viz též Spuštění Web API.
Worker může najednou vykonávat pouze jeden dotaz (v případě více příchozích dotazů jsou tyto řazeny do fronty a zpracovávány postupně), proto je v případě většího provozu nutné, aby jich byl spuštěn větší počet najednou (v takovém případě se o jejich správu stará Supervisor).
Komponenta spuštěná v případě provozu více Workerů – ať už na jednom či více strojích. Obstarává spouštění, vypínání a kontrolu dostupnosti Workerů. Uchovává informace o dostupných Workerech na konkrétním ("svém") stroji a poskytuje tyto informace Serveru.
Na každý stroj provozující Workery náleží jeden Supervisor, který je spravuje.
V případě provozu více Workerů poskytuje vstupní bod (endpoint) Web API. Je tedy vždy provozován společně se Supervisorem.
Komunikuje se Supervisorem/y, udržuje si seznam jednotlivých dostupných Workerů, na které přeposílá příchozí dotazy a získané odpovědi přeposílá dále klientům.
Klient typicky komunikuje se Serverem, který požadavky přeposílá na vybraného Workera. Komunikace mezi Serverem a Supervisorem tedy probíhá pouze při inicializaci Serveru (a v případech výskytů chyb), nikoli během zpracování požadavků.