ABRA API Tutoriál - Základní informace
API Application Programming Interface rozhraní systému ABRA Gen (dále jen Web API) je postavené na principech REST a webových technologiích (HTTP protokolu). Tj. umožňuje komunikaci s jinými systémy prostřednictvím protokolu HTTP (verze 1.1). Sestává ze dvou níže uvedených komponent, které spolu vzájemně komunikují.
Zkratku API lze volně přeložit jako rozhraní pro programování aplikací, díky kterému lze jednoduše přistupovat k údajům v informačním systému, v tomto případě v systému ABRA Gen.
Jak Web API obecně funguje? Lze si představit dětskou hračku, do které se vkládají různé tvary. Každý z nich je navržen tak, aby se vešel do konkrétního otvoru. Kolečko do kolečka, hvězdička do hvězdičky atd. Na podobném principu funguje komunikace mezi systémy, které jsou propojené pomocí API. Mají spolu dohodu: „Když mi dáš tento požadavek, já ti dám tuto odpověď. Mobilní aplikace tak například umí zobrazit data (třeba informaci, zda bude o víkendu pršet), která získá z nějakého webu (třeba serveru s předpovědí počasí). A stejně jako můžeme krabičku natřít na jinou barvu a tvary do ní budou stále pasovat, u webu můžeme změnit grafiku a aplikace bude datům "uvnitř" pořád rozumět. Pro uživatele je to jednoduché. Netuší, co všechno spolu systémy musí "vykomunikovat". Jen se dotkne displeje a zjistí, jestli bude v sobotu pršet.
Rozhraní Web API systému ABRA Gen představuje způsob, jak pracovat se systémem ABRA Gen z externích aplikací - e-shopů, webových portálů apod. Díky spolupráci serverů při výměně dat se například lze přihlašovat na různé weby přes účty na Twitteru či Facebooku. Programátor může díky API pomocí několika řádků kódu zajistit např. přenos dat z informačního systému do e-shopu (či jiné webové aplikace) a naopak. Může jít např. o seznam firem, aktualizace skladových položek nebo třeba vytvoření
Data jsou díky rozhraní Web API systému ABRA Gen přístupná přes odkazy URL a dostupná ve formátu JSON - aktuálně nejpoužívanějším formátu pro výměnu dat. API server je postaven na architektuře REST a využití HTTP protokolu. REST rozhraní umožňuje k datům jednotný a hlavně velmi snadný přístup. HTTP protokol funguje na principu požadavku a odpovědi. Klient (například webový prohlížeč) pošle požadavek webovému serveru. Ten ho zpracuje a nějakým způsobem na něj odpoví. To vše zajistí několik řádků kódu, který napíše programátor uživatele, objednaný konzultant apod. Pro běžné uživatele jsou důležitá jen data a informace, která se takto propojí mezi informačním systémem a například webovou aplikací. Součástí řešení Web API systému ABRA Gen je implementace standardu Swagger, dnes známého jako Open API.
Co je hlavním přínosem API? Rozhraní Web API a vše kolem něj tedy představuje otevřený soubor nástrojů, funkcí a operací, které má programátor volně k dispozici. Může pracovat se standardními nástroji, aniž by potřeboval studovat složitou dokumentaci. Odeslané požadavky si programy zprostředkují mezi sebou. Výsledkem je pokročilá automatizace, která výrazně šetří čas.
Co takové propojení přináší uživatelům informačních systémů v praxi? Téměř neomezené možnosti, jak vylepšit každodenní firemní procesy. Např. data z výroby se přes API pošlou do systému, kde se s nimi může dál pracovat. Obchodník v terénu odešle přes mobil množství prodaného zboží, které se okamžitě odečte ze skladu. Manažer si kdykoliv a kdekoliv zobrazí v aplikaci pro chytré hodinky firemní data. V systému se také hned objeví údaje o množství pohonných hmot, které zaměstnanci natankovali během pracovní cesty. Apod.
Rozdíly proti starším webovým službám ABRA Gen:
-
Vše, co potřebujete k provozu API, je k dispozici v rámci instalace ABRA Gen, dostupné po nainstalování ABRA Gen.
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ě ABRA Gen. Tj. veškeré objekty jsou ve výchozím stavu k dispozici a manipulujete s nimi deklarativně, tj. posíláte rozhraní 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 ABRA Gen je licencováno počtem uživatelů, kteří k němu mají přístup. U webového API webových služeb se požadavky vždy zpracovávají pod jedním konkrétním uživatelem, a když je potřeba přihlásit jiného uživatele, je nutné vypnout celého klienta a znovu spustit. V REST API je možné "přepínání uživatelů za běhu", resp. autentizace je součástí každého požadavku.
Web API jako celek sestává ze dvou komponent. Fyzicky se jedná o dva soubory ve složce, ve které je nainstalován systém ABRA Gen (klient).
Web API rozhraní je v současné době možné provozovat pouze na platformě Windows, hlavním důvodem je právě vzájemná komunikace těchto dvou komponent.
Pokud výchozí umístění některého z těchto dvou souborů změníte, takže se budou nacházet v různých složkách, je zapotřebí v konfiguračním souboru APIServer.yaml v sekci server
změnit hodnotu parametru apiLibPath
(aby API server knihovnu nalezl). Konfiguraci Web API serveru si ukážeme v další kapitole.
Architektura rozhraní Web API se ve verzi ABRA Gen 21.3 změnila. V minulosti bylo rozhraní realizováno trojicí Windows aplikací WebAPIServer.exe, WebAPISupervisor.exe a WebAPIWorker.exe. Nové řešení je jednodušší a díky podpoře vícevláknového zpracování požadavků také výkonnější.
Jak to vypadá, když pošlete z HTTP klienta požadavek na REST API:
Klient pošle HTTP požadavek, server požadavek obdrží a předá ho API knihovně (prostřednictvím nativního volání metody handleRequest, která je v knihovně implementována). Knihovna zařídí vyhodnocení požadavku v souladu s business logikou systému ABRA Gen a vrátí odpověď serveru, který ji následně přetlumočí klientovi.
U rozhraní Web API systému ABRA Gen je důležité, že se jedná o REST rozhraní. Tj. při zasílání požadavků se používají standardní HTTP metody:
- GET - chcete-li získat Business objekt (BO) nebo kolekci BO
- POST - pro vytváření BO
- PUT - pro aktualizaci BO
- DELETE - pro mazání
U rozhraní Web API systému ABRA Gen je metoda zvolená v daném požadavku důležitá (na rozdíl od některých jiných API, které povolují např. metodou POST aktualizovat).
Dostupné jsou:
- všechny BO, lze je vytvářet, aktualizovat, mazat, číst
- importní manažery (pro import jednoho dokladu do jiného aj.)
- definovatelné číselníky
- QuickReport funkce
- skripty
Dále viz podrobný help. Kap.: Věcný obsah, základní pojmy - Web API.
1. Rozumíte základním principům Web API a architektuře jeho implementace v ABRA Gen?
Můžete pokračovat dál kap. ABRA API Tutoriál - Nastavení a příprava rozhraní Web API.
Vraťte se k textu a znovu si jej prostudujte.