IT Industrija

🔥 Najčitanije
🔥 Najčitanije
GraphQL je Facebookova tehnologija koja je skoro postala open source, i mogla bi da zameni RESTful API-je na serverima mobilnih aplikacija.
Facebook je 2011. godine odlučio da uvede News Feed, koji je trebalo da da novi doživljaj njihovim korisnicima na mobilnim uređajima. Njegovi inženjeri su tada shvatili da imaju jedan veliki problem.
RESTful API-ji uopšte nisu bili prilagođeni proizvodu koji je kompanija pokušavala da izgradi, pogotovo ako se uzmu u obzir ograničenja mobilnih platformi. Iako napreduju, data konekcije su i dalje jako slabe, a 2011. godine bile su još slabije.
Sama priroda News Feeda zahtevala je veliki broj povezanih podataka, koji se preko REST-a mogu dobiti jedino kroz nekoliko zahteva za redom, pri čemu svaki sledeći zahtev mora da čeka odgovor na prethodni da bi uopšte imao dovoljno informacija da se sastavi i pošalje. Na mobilnoj konekciji, ovo je bilo neprihvatljivo.
Facebook je tada za svoje mobilne aplikacije koristio nešto što je mnogo više podsećalo na RESTful API, i to je izazivalo velike probleme. Rezultat su uglavnom bili previše specijalizovani API pozivi, duplikacija podataka i slični problemi.
Tu nastaje ideja o GraphQL-u, kao načinu da dobijemo sve one podatke koji nam trebaju jednim zahtevom, i da dobijemo samo one podatke koji nam trebaju.
Bez odlaganja, evo kako izgleda jedan GraphQL zahtev, i odgovor servera:
Ono što prvo upada u oči jeste da odgovor izgleda isto kao i zahtev. Kada šaljemo zahtev, znamo tačno šta da očekujemo kao odgovor. Ovo je značajna promena u odnosu na REST pristup.
Kod liči na JSON, tako da deluje jednostavno i pristupačno, što doprinosi lakšem usvajanju ove tehnologije.
GraphQL nam omogućava da budemo konkretni sa svojim zahtevom, a pisanje samih upita olakšano je na mnoge načine.
Upiti se, na primer, mogu fragmentirati tako da je pisanje velikih upita olakšano. Ovo je motivisano i činjenicom da se često na klijentu ti fragmenti mapiraju na komponente interfejsa, takoreći 1 prema 1.
Slikovito govoreći, GraphQL je specifikacija za tanki horizontalni sloj softvera koji dolazi iznad vašeg backenda. Služi očiglednoj svrsi: da obezbedi jedinstven nivo apstrakcije za različite backend arhitekture.
Iako mu ime kaže da je Query Language, GraphQL nije upitni jezik za baze podataka, već kako ga njegovi kreatori nazivaju, kveri jezik za vašu aplikaciju.
Praktični benefiti su očigledni: nema više mozganja o tome da li će vaš novi API podržavati verziju klijenta od pre tri godine, i da li će uniformno obrađivati zahteve sa različitih mobilnih platformi.
Razvoj za klijenta takođe postaje lakši — navedite šta vam treba u zahtevu, i to ćete dobiti u sledećem odgovoru, u istom formatu.
GraphQL svakako nije potpuna zamena za REST, čije primene obuhvataju mnogo više od domena mobilnih aplikacija.
Kod ove tehnologije pušten je u javnost 2015. godine, i od tada se oko nje stvorila aktivna zajednica koja je doprinela daljem razvoju.
Kako je cilj GraphQL-a bio da ponudi jedinstvenu apstrakciju za različite backende, on se može integrisati sa svim popularnim programskim jezicima.
Nik Šrok, Facebookov inženjer, prošle godine održao je prezentaciju koja objašnjava ideju i primenu GraphQL, kao i kako i zašto je on nastao.
Stiv Šafner, takođe iz Facebooka, ima odlično predavanje naslovljeno Zero to GraphQL in 30 Minutes, koji prolazi kroz osnove GraphQL-a u tri programska jezika.
Li Bajron, jedan od glavnih inženjera koji su napravili ovu tehnologiju, skoro je govorio o dizajniranju GraphQL-a.
Li i Stiv zajedno su gostovali u podkastu JavaScript Air, gde su dublje ušli u tehničke detalje, a bilo je reči i o trenutnim trendovima u razvoju klijent-server arhitektura, pogotovo sa mobilnim klijentima.
Listu sa još gomilom korisnih resursa, možete naći na ovoj githab strani.
Srećno kodiranje!
Objavio/la članak.
petak, 21. Oktobar, 2016.