Asi neexistuje v it světě více matoucí pojem, než je api. Ať jste podnikatel, student, manažer,nebo prostě člověk pohybující se ve světě it.Tak jste se určitě tím pojmem setkali a zdálo se vám, že jen programátoři znají její tajemství a vám to nikdy neprozradí. Teda až do dnes.
Problémem je, že API je abstraktní pojem, tedy nemá solidní definici, spíše několik vlastností, co musí mít a co za problém řeší. Takže když si člověk vygoogluje API jako:
“Jde o sbírku procedur, funkcí, tříd či protokolů nějaké knihovny , které může programátor využívat. API určuje, jakým způsobem jsou funkce knihovny volány ze zdrojového kódu programu.”
Tak mu to moc nepomůže….
Začneme u názvu, API nebo:„application programming interface“
Slova application programming značí jen že Api je samostatná aplikace, která se dá naprogramovat, jak programátor chce.
Třetí slovo je pro nás nejdůležitější rozhraní Stejně jako u slova UI,“interface” znamená česky rozhraní.
Ananalogie o rádiu
Představte si přední stranu rádia s čudlíky a měničem hlasu atd. Tímto rozhraním ovládá posluchač vlastnosti rádia a může si tak užít zážitek podle sebe.
Ale jak to funguje? Jak se v rádiu se zvedá hlasitost, mění frekvence a překlikne z FM na AM?
No… to právě uživatel se nemusí starat, stačí, aby správně manipuloval s rozhraním rádia, a jak se jeho pohyby s tlačítky mění eletrícké napětí v rádiu, je mu fuk.
Takže rozhraní u rádia je prostředníkem mezi posluchačem a elektronikou uvnitř.
Co to má společného webovou api?
Jak u rádia nechceme aby posluchač manipuloval s elektronikou přímo, tak u webové stránky uživatel nesmí manipulovat s daty na serveru.
Ale spojí se s api a komunikuje jen s ní.
Kupříkladu máme stránku knihovny a potřebujeme tam vykreslit 20 knih a data těch knih jsou uložené v databázi na serveru. Samozřejmně, že by šlo se napřímo připojit do databáze a vzít si 20 knih.
To by bylo ale pracné, takhle bychom potřebovali specifikaci databáze a vědět SQL nebo jiny DB jazyk, který se tam požívá. Dále přemýšlet o bezpečnosti, kdokoliv se tam může připojit a smazat nebo jinak změnit trvale databázi.
Asi vidíte, že existuje jiná cesta. Místo abych jsem komunikoval se serverem přímo, naprogramuju si prostředníka, který bude mít několik funkcí, jednou z nich bude poslat data 20ti knih uživateli.
Takže pokud bude uživatel chtít tyto data, stačí, aby poslal na api dotaz “GET books/20” a api se postará o vše, bez toho, aby uživatel věděl něco o serveru.
REST API vs. GRAPHQL
Oba jsou api protokoly,ale každý přistupují k dotazům, mají své výhody a nevýhody a jsou vhodné pro různé účely.
REST (Representational State Transfer):
má vícero druhů endpointů, takže pokud uživatel chce více druhů, tak musí zavolat několik entpointů najednou.
Představte si, že jste v restauraci a ukážete v menu na název jídla.
Výhody REST:
- Jednoduchost: REST API jsou často jednodušší na pochopení a implementaci, což je výhodné pro jednoduchá a malá rozhraní.
- Škálovatelnost: REST je vhodný pro systémy, které potřebují horizontální škálovatelnost, protože každý zdroj je dostupný na samostatném URL.
- Cache: REST využívá HTTP metody, což umožňuje snadnou implementaci cachování na straně klienta.
GraphQL
Řeší problém REST api tak že používá jen jeden endpoint a data které potřebuje od serveru píše v objeku které pošle s ním.
Takže si představte Subway, kde si přesně nadiktujete, co v sendviči chcete.
- Výhody GraphQL:Flexibilita: GraphQL umožňuje klientovi získat přesně data, která potřebuje, což snižuje přenos nepotřebných dat a zlepšuje výkon.
- Jedno API pro všechno: GraphQL může sloužit jako jediné rozhraní pro všechny typy klientů (mobilní aplikace, webové aplikace, IoT atd.), což zjednodušuje správu a údržbu API.
- Méně dotazů: Kvůli schopnosti sjednotit více dotazů do jednoho se může snížit počet dotazů na server a minimalizovat problém "N+1".
Různé typy api
- Instagram API: Umožňují vývojářům přistupovat k funkcím a datům sociálních médií pro integraci do aplikací.
- Google Maps API: Poskytují přístup k mapám a geografickým informacím pro vytváření lokalizačních a navigačních funkcí.
- YouTube API: Slouží k práci s multimediálním obsahem, jako jsou videa, hudba a obrázky, pro sdílení a manipulaci.
- PayPal API: Umožňují zpracování online plateb a transakcí pro e-commerce a platby na webu.
Závěr
Základním cílem tohoto blogu bylo odstranit obavy spojené s pojmem "API" a poskytnout jednoduchý a praktický vhled do toho, co API vlastně znamená.
API slouží jako prostředník mezi různými systémy, nejčastěji mezi webovou aplikací a serverem. Toto rozhraní je základním stavebním kamenem mnoha moderních digitálních projektů a umožňuje různým technologiím komunikovat mezi sebou.
Tento blog může sloužit jako výchozí bod pro další studium a vzdělávání se v oblasti API. Rozšiřte si své znalosti o této klíčové součásti moderního digitálního světa, a na dalším meetingu budete moci efektivněji komunikovat s týmem a lépe porozumět tomu, co se děje za scénou vašich projektů.