Mijn Bachelorproef over GraphQL en JSON Web Tokens!
Sluit Logo DX Solutions

Mijn Bachelorproef over GraphQL en JSON Web Tokens!

27 juni 2018 - Thijs Windels
Onze stagiair uit de opleiding New Media & Communication Technology aan Howest te Kortrijk aan het woord over zijn Bachelorproef.

Ik ben Thijs Windels en studeer New Media & Communication Technology aan Howest te Kortrijk. Een IT-opleiding waar ik mij specialiseer in web- en apptoepassingen. Tijdens mijn stage in het laatste semester van mijn opleiding, mocht ik aan de slag bij DX-Solutions.

 

Bachelorproef, oei …

Tijdens de stageperiode schreef ik mijn bachelorproef over 'de invloed van GraphQL en JSON Web Tokens (JWT) op het bouwen van een project'. Vanuit wat opzoekingswerk maakte ik een demoproject. Op die manier kon ik zelf ondervinden hoe zo'n implementatie werkt. Elke vrijdag kreeg ik dan ook de tijd om hier verder onderzoek naar te voeren op de werkvloer.

 

De bedoeling was om via een projectgerichte uitwerking de verschillen tussen een REST-API en GraphQL te ontdekken. Een tweede luik ging over de verschillen tussen JWT's en sessions. Uiteindelijk bleek dat beide technologieën hun voordelen konden opbrengen in de juiste situaties.

 

Wat is GraphQL eigenlijk?

Bij grotere projecten is GraphQL geen overbodige luxe. Het is een query language die het de gebruiker mogelijk maakt een GraphQL-API te 'doorzoeken'. Het antwoord van de server wordt zo een pak kleiner. Dat komt de snelheid natuurlijk ten goede. Wanneer een API dient uitgebreid te worden, wordt ook het gemak duidelijk. Met behoud van eenzelfde endpoint kan de frontend andere data opvragen. Zo kunnen een webapp en mobiele applicatie gebruik maken van dezelfde API en toch verschillende data opvragen. 

1*Fz_DTbJptm_S7GccttSFVw.png

Ok, en wat met JSON Web Tokens?

JSON Web Tokens dienen als autorisatiemogelijkheid (eventueel ter vervanging van sessions). Hiermee kan de gebruiker bewijzen wie hij is. JWT's vinden vooral hun voordeel op vlak van performance en het feit dat er een nuttige informatie in het token verwerkt zit. Ideaal voor het werken met API's of one-time-use tokens.

Afbeeldingsresultaat voor json web token

Dankzij de vakkundige feedback van de collega's, kon ik dit document een heel stuk uitbreiden. Met de eindpresentatie in zicht, gaf ik over de middag al een sessie rond GraphQL. De vragen achteraf zijn natuurlijk een aangename voorbereiding op wat me op de eindpresentatie te wachten staat.