GraphQL Presentation

GraphQL Presentation



GraphQL: Zašto, kada i kako?

Na nedavnoj prezentaciji na temu "GraphQL: Zašto, kada i kako?", predstavili smo ključne koncepte i prednosti GraphQL-a u odnosu na tradicionalne REST API-je.

Uvod u GraphQL

GraphQL je jezik upita za API-je i istovremeno runtime za izvršavanje tih upita, omogućavajući klijentima da dobiju tačno one podatke koje trebaju – i ništa više. Facebook ga je razvio 2012. godine kako bi unaprijedio performanse i fleksibilnost u dohvaćanju podataka. Danas ga koriste velike kompanije poput GitHub-a, Shopify-a i Twitter-a.

Problemi REST API-ja koje GraphQL rješava

REST API-ji imaju određena ograničenja kao što su:

  • Preveliko dohvaćanje (over-fetching) – dohvaćanje više podataka nego što je potrebno. - Premalo dohvaćanje (under-fetching) – potreba za višestrukim upitima kako bi se dobili svi potrebni podaci. - Versioning – složenost upravljanja verzijama API-ja.

GraphQL omogućava dohvaćanje svih povezanih podataka unutar jednog poziva, eliminirajući potrebu za više ruta i poziva.

Ključne komponente GraphQL-a

  1. Schema – Definira strukturu podataka (npr. tipovi podataka kao što su String, Int, User). 2. Queries – Omogućuju dohvaćanje podataka u formatu sličnom JSON-u. 3. Mutations – Omogućuju promjenu podataka. 4. Subscriptions – Omogućuju real-time ažuriranja podataka putem pretplata.

Prednosti GraphQL-a

  • Jedan endpoint umjesto više REST ruta. - Fleksibilnost u upitima, korisnik može tražiti samo ono što mu je potrebno. - Snažno tipiziran sustav, što osigurava konzistentnost podataka. - Mogućnost real-time ažuriranja pomoću pretplata.

Izazovi i problemi

Iako GraphQL nudi mnoge prednosti, postoje i izazovi:

  • Složenost postavljanja - Moguće preopterećenje servera - Krivulja učenja

Primjene u stvarnom svijetu

GraphQL se koristi u raznim domenama, poput:

  • E-commerce - SaaS - Društvene mreže