Linda
Door Linda
30 augustus 20234 min. leestijd

De kracht van GraphQL: waarom we toch vaak voor deze technologie kiezen

GraphQLSoftware Development

Hoewel GraphQL in populariteit blijft groeien, geven ook steeds meer developers een tegengeluid met nadelen van deze techniek die communicatie tussen front- en Woordenboek · In het kortbackendDe backend is het deel van een applicatie dat op de server gegevens verwerkt, bedrijfsregels uitvoert en andere systemen aanstuurt. Gebruikers werken er meestal via een frontend of API mee.Lees meer⁠ vereenvoudigt.

Als ontwikkelaars staan we voortdurend voor de uitdaging om de beste technologieën te kiezen die passen bij onze projecten. In dit blogartikel willen we graag de redenen delen waarom we er bij onze projecten vaak voor kiezen om GraphQL te gebruiken. Ondanks dat er regelmatig nadelen van GraphQL worden belicht, zijn er verschillende factoren die ons overtuigen om deze technologie (met grote regelmaat) te omarmen. Als je nou geen flauw idee hebt wat GraphQL precies is, hier vind je wat algemene informatie.

Waarom je niet voor GraphQL zou kiezen

We zien de laatste tijd steeds vaker dat de nadelen van GraphQL benadrukt worden en dat zien we eigenlijk ook wel als een goed iets. Bij technieken die je gebruikt is het altijd verstandig om je te bedenken of het een of ander ook echt de beste oplossing is voor een probleem.

Een van die nadelen die vaak benoemd wordt is versiebeheer (versioning). In principe draai je 1 versie van GraphQL, waar het bij andere Woordenboek · In het kortAPIEen API is een vastgelegde manier waarop software gegevens uitwisselt of functies van andere software aanroept, zonder de interne werking daarvan te hoeven kennen.Lees meer⁠ (bijvoorbeeld op basis van REST) mogelijk is om meerdere versies te hebben. Dit kan voornamelijk problemen geven bij mobiele applicaties waarbij het nog maar de vraag is of alle gebruikers regelmatig hun apps updaten (en je dus zeker wilt weten dat een oudere versie blijft werken). Echter, aangezien de API's van onze projecten meestal niet gericht zijn op publiek gebruik, of voornamelijk bestaan uit webapplicaties, hebben we significant minder last van dit nadeel. Bovendien maakt het continuous development van deze webapplicaties een stuk eenvoudiger.

Bij technieken die je gebruikt is het altijd verstandig om je te bedenken of het ook echt de beste oplossing is voor een probleem.

Een ander nadeel dat vaak genoemd wordt, is dat GraphQL te veel informatie kan vrijgeven (te veel exposen). Als je niet goed nadenkt over je Woordenboek · In het kortdatabaseEen database is een gestructureerde verzameling gegevens die software kan opslaan, opvragen en wijzigen. Een databasebeheersysteem regelt de toegang tot die gegevens.Lees meer⁠ en configuratie van GraphQL kan het zomaar zijn dat er te veel informatie vanuit de database wordt meegegeven en gevoelige informatie ineens op straat ligt. Uiteraard zijn we ons bewust van het belang van die juiste configuratie. Wat ook nog meehelpt, is dat we veelal werken aan intern geauthenticeerde applicaties. Dan is informatie op een eerder niveau al uitgebreid beschermd, nog voordat er een Woordenboek · In het kortqueryEen query is een gerichte opdracht aan een systeem om gegevens op te vragen, te filteren, te combineren of te wijzigen.Lees meer⁠ uitgevoerd wordt.

Waarom je wél voor GraphQL zou kiezen

Naast de genoemde nadelen heeft GraphQL ook grote voordelen die ons overtuigen om voor deze techniek te kiezen. Allereerst biedt GraphQL een eenvoudige manier om typen te definiëren, wat enorm helpt bij het behouden van een consistente datastructuur en het minimaliseren van fouten. Daarnaast heeft GraphQL een robuust ecosysteem met populaire tools zoals NestJS, Apollo, Codegen en React, waardoor we een enorme bibliotheek van oplossingen hebben om uit te kiezen bij het ontwikkelen. Dit maakt het gemakkelijk om te integreren en efficiënter te werken. Tot slot waarderen we de flexibiliteit die GraphQL biedt bij het scheiden van de backend en Woordenboek · In het kortfrontendDe frontend is het deel van een website of applicatie dat de gebruiker ziet en bedient, zoals pagina's, knoppen, formulieren en interactieve schermen.Lees meer⁠, terwijl beide wel in één monorepo zitten. Hierdoor kunnen teams onafhankelijk en parallel werken en kunnen we wijzigingen in beide lagen gelijktijdig coördineren.

Key takeaways

  • Minimaliseren van versiebeheer Met GraphQL werken we meestal met één versie van de API, waardoor we eenvoudiger kunnen doorontwikkelen.

  • Eenvoudig typen Het gebruik van typen binnen GraphQL helpt bij het behouden van een consistente datastructuur en het verminderen van fouten.

  • Flexibele scheiding tussen backend en frontend Door GraphQL kunnen backend- en frontendteams onafhankelijk en parallel werken, wat de samenwerking efficiënter maakt.

  • Geen wondermiddel GraphQL is niet voor elk project de juiste keuze, maar in veel situaties zijn wij erg enthousiast over de voordelen!

Ewout

Contactpersoon: Ewout

Samenwerken?

Heb je een softwarevraag of een project in gedachten? Neem contact op met Ewout. Samen bespreken we wat je nodig hebt en hoe we kunnen helpen.

CONTACT

Neem contact met ons op

Heb je een vraag of wil je sparren over je software? Laat je gegevens achter, dan nemen we snel contact met je op.