GraphQL

GraphQL is een efficiënte querytaal en runtime voor API’s. Door precies die gegevens die je nodig hebt op te vragen, blijven applicaties snel en overzichtelijk.

  • Voorkomt over- en underfetching van data.

  • Eén endpoint voor web, mobiel en partners.

  • Sterk typeerbaar samen met tooling.

GraphQL development in de praktijk

Wat is GraphQL?

GraphQL is in 2012 ontwikkeld door Facebook omdat het team behoefte had aan een krachtige 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 voor het efficiënt opvragen van data voor mobiele applicaties. In 2015 heeft Facebook ervoor gekozen om GraphQL Woordenboek · In het kortopen sourceOpen source is software waarvan de broncode beschikbaar is en de licentie toestaat dat anderen de software gebruiken, bestuderen, aanpassen en verspreiden.Lees meer aan te bieden en sindsdien groeit deze open-source query-taal enorm in populariteit. Inmiddels wordt het gebruikt door grote bedrijven als Facebook, Spotify, GitHub, Pinterest & Twitter.

Efficiënt communiceren op meerdere niveaus

Met GraphQL geef je in 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 aan welke gegevens je wilt ontvangen, ook als die uit meerdere bronnen komen. Zo kan een applicatie de velden opvragen die voor een bepaald scherm nodig zijn. Dat helpt voorkomen dat je overbodige gegevens ophaalt of extra verzoeken moet doen voor ontbrekende informatie.

Het belang van snelheid

De snelheid van applicaties is steeds belangrijker. Uit diverse onderzoeken (hier vind je 12 statistieken die de impact van laadtijd op conversie laten zien) blijkt dat de conversieratio’s van websites met gemiddeld 4,42% dalen per extra seconde laadtijd. GraphQL geeft clients de mogelijkheid om precies dat op te vragen wat ze willen, niets meer en niets minder. Dit maakt verzoeken en reageren op verzoeken erg snel, omdat er geen overbodige gegevens zijn. Hierdoor wordt het gebruik van API's veel efficiënter.

Samenwerken aan frontend en backend

GraphQL is een prettige manier om je 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 te laten communiceren met je 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. Door de manier van dataverzameling kunnen frontend- en backend-development teams makkelijker samenwerken. GraphQL maakt het voor developers namelijk aanzienlijk eenvoudiger om zowel te coderen als te documenteren. Zeker in combinatie met TypeScript helpt dat om fouten in de code eerder te vinden.

GraphQL in de praktijk

In de publieke case van IVBB zie je GraphQL terug tussen een NestJS backend en een React-frontend, in een applicatie waar beveiliging, consistente datastructuren en beheerbaarheid samen moeten komen. Dat past goed bij hoe wij GraphQL inzetten: vooral waar meerdere schermen of beheerflows vragen om een scherp contract, niet als universele vervanger van iedere REST-API.

Die nuance benoemen we ook in onze eigen blog over GraphQL. Voor publieke API's met meerdere versies of clients die lang achter kunnen lopen, kan een andere aanpak logischer zijn. We beoordelen daarom of GraphQL de afspraken over data tussen client en server duidelijker maakt.

Grootste voordelen van GraphQL

  • Geen under- of overfetching, maar precies de data die je nodig hebt.

  • Woordenboek · In het kortagile & scrumAgile is een manier van werken waarin je software stap voor stap ontwikkelt en bijstuurt op basis van feedback. Scrum geeft daar structuur aan met korte sprints en vaste overlegmomenten.Lees meer, omdat meerdere developers tegelijkertijd kunnen doorontwikkelen.

  • Efficiënt resourcegebruik en daardoor snellere requests aan client- en serverkant.

  • Flexibiliteit voor verschillende clients zonder dat je voor elke frontend een aparte API hoeft te bouwen.

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.