Model Solution of GraphQL Client-Server Application

Thesis title: Modelové řešení aplikace klient-server využívající GraphQL
Author: Zicha, Ondřej
Thesis type: Diplomová práce
Supervisor: Sklenák, Vilém
Opponents: Vojíř, Stanislav
Thesis language: Česky
Abstract:
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 dotazů 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í.
Keywords: Apollo; Databáze; deklarativní typová data; dotazovací jazyk; GraphQL; internet; JavaScript; klient; MongoDB; Node.js; React; REST API; SDL; server; webová aplikace
Thesis title: Model Solution of GraphQL Client-Server Application
Author: Zicha, Ondřej
Thesis type: Diploma thesis
Supervisor: Sklenák, Vilém
Opponents: Vojíř, Stanislav
Thesis language: Česky
Abstract:
This ‘Diploma Thesis’ has been developed and is focused on GraphQL Technology, specifically its application on the client-server model solution.The first section of the thesis pursues the theoretical aspects of communication between two connected devices by an internet network. Additionally, it will concern the traditional approach of REST API and its comparison with the GraphQL concept, especially in regard to server sides and client sides. Furthermore, the thesis assesses the principles and methodology of developing REST API/GraphQL, analyzing the advantages and disadvantages in comparison to the traditional approach of REST API. In particular, focus will be on: design patterns; type system; SDL language; methods of introspection; code validation; creation of questions and mutations; and modifying data in database.The practical section of the thesis focuses on the actual use of this technology. The overall goal is to create a model solution of a web application, one which communicates between server and client via using GraphQL technology. Before the application of this practical methodology, in the introduction of this section, a description of the implementation tools, used by the above web application solution, will be offered. Furthermore, the individual parts of the application are described in an order that reflects the process of its development up-until the first running of the app.The final section of the thesis offers a summary of results, in addition to addressing whether the aims of the study – presented in earlier sections of the work – were met. Following this, a suggestion for the possible development of this research will be discussed.
Keywords: Apollo; Client; Database; Declarative Type Data; Internet; JavaScript; MongoDB; Node.js; React; REST API; SDL; Server; Query Language; Web Application; GraphQL

Information about study

Study programme: Aplikovaná informatika/Znalostní a webové technologie
Type of study programme: Magisterský studijní program
Assigned degree: Ing.
Institutions assigning academic degree: Vysoká škola ekonomická v Praze
Faculty: Faculty of Informatics and Statistics
Department: Department of Information and Knowledge Engineering

Information on submission and defense

Date of assignment: 9. 4. 2018
Date of submission: 29. 11. 2018
Date of defense: 21. 1. 2019
Identifier in the InSIS system: https://insis.vse.cz/zp/65715/podrobnosti

Files for download

    Last update: