• Nebyly nalezeny žádné výsledky

Z výsledků pomocí webové služby Google Scholar bylo nalezeno zhruba 4 000 záznamů.

Jedním z hlavních zdrojů je zejména kniha GraphQL API Design od autora Matthiase Biehla ze Švédska, která popisuje, jak vytvářet robustní API pomocí GraphQL. Další zajímavý zdroj je e-kniha The Road to GraphQL od Robina Wierucha, která se přímo zabývá implementací technologie GraphQL v prostředí Node.js.

Obrázek 1: Výsledky vyhledávání Google Scholar (autor)

Portál Theses.cz odhaluje, že kvalifikačních prací na dané téma je velmi málo. Jelikož GraphQL je stále poměrně mladá technologie je patrné, že více obdobných prací se bude objevovat v budoucnu. Jako hlavní rešerše na obdobné téma jsou vybrány kvalifikační práce, Porovnání implementací REST a GraphQL API od Ing. Šimona Podlipského a

Modelové řešení aplikace klient-server využívající GraphQL, kterou napsal Ing. Ondřej Zicha.

PODLIPSKÝ, Šimon. Porovnání implementací REST a GraphQL API. Praha, 2018.

Diplomová práce. Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky.

Katedra informačních technologií.

„Diplomová práce se věnuje porovnání implementací API skrze HTTP protokol s využitím principu REST a s využitím GraphQL. Odpovídá na otázku, jestli je jedna forma API vhodnější než druhá. GraphQL mezi vývojáři v posledních letech nabírá na popularitě a často bývá považováno za nadřazené REST API. Práce však dojde k závěru, že náročnost implementace je pro obě formy podobná. Zároveň je zdůrazňováno, že se možnosti využití obou forem kryjí, avšak každá má navíc něco, co ta druhá nemá, a tak hlavně záleží na kontextu, v jakém je konkrétní forma API realizována. S GraphQL se snadněji pracuje na frontendu, kde klientská aplikace nemusí transformovat získaná data, protože je API flexibilně předá ve formě, kterou si klientská aplikace sama definovala. GraphQL API zároveň samo automaticky generuje plnohodnotnou dokumentaci, zatímco REST API z části vyžaduje manuální tvorbu dokumentace, na což je z pohledu vývoje negativně nahlíženo vzhledem ke vznikajícímu prostoru pro chyby. Na druhou stranu REST API lépe využívá vlastností HTTP protokolu na rozdíl od GraphQL, které musí vynalézat vlastní konvence. Obě formy tak mají své výhody a nevýhody, nedá se však jednoznačně říci, že by jedna byla lepší než ta druhá. Zároveň je možné využívat obě formy najednou podle toho, kde je která vhodnější. Navzájem se nijak nevylučují. Práce také úspěšně demonstruje ideální techniky realizace obou způsobů API.“ (PODLIPSKÝ, 2018)

Autor v práci porovnává dva přístupy k implementaci API. Na jedné straně využívá vzor REST a na druhé právě technologii GraphQL. Práce také obsahuje ukázku použití zmíněných technologií na jednoduché aplikaci synchronizace dopravních kamer. Ze závěrů práce vyplývá, že se nedá jednoznačně určit, která technologie je výhodnější a záleží tudíž na kontextu, ve kterém se API tvoří.

Autor zmiňuje, že technologie REST se dá použít v podstatě na jakékoliv řešení, za to GraphQL se více hodí na řešení, kde klient a server nejsou svázáni nebo server využívá více klientů najednou s různými potřebami.

Hlavním rozdílem této práce oproti práci autora je, že se více zaměřuje na implementaci reálného systému v praxi, který řeší konkrétní firemní problém a je více zaměřen na technologii GraphQL. Tato práce nemá za cíl porovnávání GraphQL a REST, avšak využívá rozhraní REST jako jednu z interních služeb firmy.

Zicha, Ondřej. Modelové řešení aplikace klient-server využívající GraphQL. Praha, 2018.

Diplomová práce. Vysoká škola ekonomická v Praze. Fakulta informatiky a statistiky.

Katedra informačního a znalostního inženýrství.

„Tato diplomová práce se zabývá technologií GraphQL a její aplikací na modelové řešení klient-server. První část je věnována teoretickým aspektům komunikace mezi dvěma propojenými zařízením sítí internet, tradičnímu přístupu REST API a jeho porovnání s konceptem GraphQL jak na straně serveru, tak i na straně klienta. V práci jsou rozebírány principy a metodiky tvorby REST API, specifikace GraphQL, výhody a rozdílnosti oproti tradičnímu přístupu REST API, návrhové principy, typový systém, SDL jazyk a metody introspekce a validace kódu, tvorba dotazu a mutací za účelem získávání a modifikace dat v databázi. Praktická část je zaměřena na použití této technologie s cílem vytvoření modelového řešení webové aplikace komunikující mezi serverovou a klientskou částí prostřednictvím technologie GraphQL. V úvodu této části jsou popsány implementační nástroje, které výsledná aplikace používá. Dále jsou popisovány jednotlivé části aplikace ve sledu reflektujícím postup jejího vývoje až po její samotné spuštění. Závěrečná část shrnuje výsledek a naplnění cílů této práce spolu s návrhem na možnost jejího dalšího rozšíření.“ (ZICHA, 2018)

Autorova práce se zabývá porovnáváním technologií REST a GraphQL. Rozdílem oproti předchozí práci je technologie, ve které je API implementováno. Zde je použita technologie Node.js, přitom v předchozí práci je server řešen v jazyce PHP. Dalším rozdílem je implementace klientské strany pomocí technologie React.js.

2 Teoretická část

První z hlavních kapitol práce se zabývá teorií a základní problematikou vytvářeného řešení.

Podkapitola Metodika popisuje využití agilního přístupu při vývoji prototypu aplikace a zároveň zahrnuje kontext a prostředí, ve kterém vývoj aplikace probíhá. Další podkapitola zahrnuje základní popis jednotlivých použitých technologií projektu a jejich konkrétní zapojení u implementovaného řešení. Poslední podkapitola se zabývá hlavní technologií práce – GraphQL. Tato podkapitola detailně popisuje, jak technologie funguje, její vlastnosti, výhody, nevýhody a její přínos pro implementované řešení.