English
Polski
Français
Deutsch
日本
Español
Dansk
GraphQL is een manier van communiceren met API's die is gemaakt als alternatief voor REST.
GraphQL is een querytaal voor API's die is ontwikkeld door Facebook en hun ontwikkelaarsgemeenschap. Het ging in juni 2018 in première en is nu een volwassen technologie die wijdverspreide erkenning in de markt heeft gekregen. Daardoor wordt het goed herkend en kiezen veel bedrijven ervoor om het te implementeren. Om je te vertellen hoe het anders is, moeten we kijken naar wat nog steeds het meest gebruikt wordt: REST en waar het op gebaseerd is. GraphQL wordt vaak de opvolger van REST genoemd omdat het de belangrijkste problemen ervan oplost. Zoals je waarschijnlijk weet, is het gebaseerd op een soort oud systeemontwerp. Volgens dit model is elk gegevensmodel beschikbaar op een apart adres. Bij een online winkel met kleding kunnen we bijvoorbeeld adressen hebben voor winkelwagen, magazijn, producten en nog veel meer.
In feite zal het aantal van zulke adressen nooit klein zijn, integendeel, het zal meegroeien met het systeem. Houd in gedachten dat je voor bijna elk adres een set aanroepen moet maken om get, post, put of delete verzoeken af te handelen. Dit resulteert in een groot aantal adressen om te onderhouden en een nog groter aantal oproepen die nodig zijn om de gegevens te krijgen. GraphQL werkt op een heel andere manier. We hebben maar één adres, één bron van waarheid, waar we gegevens kunnen opvragen. Wat we krijgen hangt alleen van ons af en hoe we de query samenstellen.
Het belangrijkste kenmerk van GraphQL is de mogelijkheid om flexibele queries uit te voeren waarin we precies definiëren welke gegevens we uit de API willen halen. Daarnaast biedt de taal de mogelijkheid om geneste queries te maken, waardoor het op deze gebieden nog meer voordeel heeft ten opzichte van REST API's.
Een punt van overeenkomst tussen REST en GraphQL is platform- of programmeertaalonafhankelijkheid. Een ander gemeenschappelijk kenmerk is de idempotentie van dezelfde operaties. Voor zowel de REST architectuur als GraphQL geldt dat bewerkingen zoals ophalen, wijzigen of verwijderen herhaaldelijk kunnen worden gebruikt zonder dat het resultaat verandert.
De basiselementen van GraphQL zijn: mutatie:
GraphQL gebruikt zijn eigen syntaxis: SDL of Schema Definition Language. Deze wordt gebruikt om het schema van een API en de bijbehorende typen en velden te specificeren. Types worden gedeclareerd met het type sleutelwoord en velden worden toegevoegd tussen haakjes voor elk objecttype.
Hoewel GraphQL nog steeds niet zo populair is als REST, groeit de community snel. Het heeft al een aantal grote gebruikers zoals GitHub, Netflix, PayPal of Shopify. Het is slechts een kwestie van tijd voordat er meer zullen volgen.