API! API! API! API!
26. 04. 2018
Popularita využití API (Application Programming Interface) v moderních aplikacích rok od roku stoupá.
Nicméně se nejedná o nový koncept, prvně byl použit už v 60 letech minulého století\tisíciletí a častěji začal být využíván o 10 až 20 let později.
API je rozhraní pro komunikaci mezi aplikacemi nebo mezi programátorem a aplikací. V obecném slova smyslu musí jakákoliv knihovna (soubor funkcí nebo metod) nebo programovací jazyk nabízet API pro komunikaci nebo jeho používání. Bez tohoto rozhraní by nebylo možné knihovnu či jazyk používat.
V naší společnosti se nejčastěji setkáváme s následujícím využitím API ve webových aplikacích:
- MVC s WEB API – klasické aplikace s třívrstvou architekturou (model – controller – view)
- REST API – dvou vrstvá architektura bez uživatelského rozhraní
Obě výše uvedené možnosti mají své výhody a nevýhody. Nicméně obecně můžeme říct, že designový návrh MVC s WEB API je starší technologie, která je již pomalu na ústupu. Přináší sice kompletní řešení bez nutnosti dalšího programování či úprav, její hlavní nevýhodou je větší objem odesílaných dat a s tím související rychlost resp. odezva a pracnější implementace změn. Zákazníkovi je tedy dodána aplikace, která je již připravena k finálnímu použití. Toto řešení je úzce spjato s UI (User Interface) a přístupem pouze oprávněných uživatelů.
Oproti tomu architektura, která využívá pouze REST API, najde své využití u firem, které nepotřebují uživatelské rozhraní nebo chtějí řešit UI pomocí Javascriptových frameworků (SPA aplikace). Toto řešení je velice moderní a v dnešní době prosazované. Výhodou je, že lze naprogramovat a dodat „jen“ byznys logiku a komunikace s aplikací bude probíhat pomocí rozhraní API. Typickým příkladem jsou aplikace, kde zákazník poskytuje data třetím stranám a nezajímá ho, jak s těmito daty dále pracují. Druhým příkladem použití je, kdy zákazník má již aplikaci s UI naprogramovanou (přičemž ji může poskytovat třetím stranám) a nechce ji již měnit nebo ji chce mít oddělenou od byznys logiky. Obrovskou výhodou tohoto modelu je rychlost výsledné aplikace, vysoká přístupnost a “bezstavovost“, tedy všichni uživatelé dostávají stejnou informaci při stejném požadavku (aplikace pošle pouze data a nijak je nemění).
Pravděpodobně nejznámějším využitím návrhu s použití REST API jsou Google\Seznam mapy, aplikace o počasí nebo zobrazování sportovních výsledků.
Základem pro využití REST API je správná dokumentace k tomuto rozhraní. Nejrozšířenější aplikací pro tuto dokumentaci je Swagger či také velice populární Apiary z dílny českých vývojářů, které obsahuje seznam všech http požadavků včetně ukázky struktury posílaných dat (nejčastěji JSON) a možností tuto komunikaci otestovat.
Výše zmíněná řešení mají své výhody i nevýhody a jejich implementace je vždy závislá na plánovaném využití. MVC API přináší kompletní (krabicové) řešení, REST API vždy počítá s využitím další aplikace. V rámci naší společnosti jsme již dodávali i řešení s REST API a současně s vytvořenou UI vrstvou. Tedy kombinace obou dvou řešení.
zpět