2 1 3

GraphQL: een echte gamechanger

Van overheid tot e-commerce: voor een ideaal werkende applicatie is zo efficiënt mogelijk dataverkeer tussen client en API’s cruciaal. GraphQL is zich hierin enorm aan het bewijzen. Head of Microsoft Donald Hessing van Capgemini legt uit hoe je met deze querytaal het beste uit API’s haalt.

Misschien werk je nog vooral met REST, maar de opkomst van GraphQL zal je de afgelopen jaren vast niet ontgaan zijn. Alle – steeds populairdere – headless commerce engines en web content management systemen werken al op basis van GraphQL. Deze querytaal is in 2015 door Facebook open-source gemaakt. Doel ervan is de data-uitwisseling tussen API’s en de front-end in een microservices-omgeving een stuk efficiënter te maken.

GraphQL to the rescue

De uitdaging van de microservices-architectuur is de communicatie met de front-end. Elke service heeft een eigen API waar een aparte call naartoe moet. Zoals API’s voor het winkelmandje, producten, voorraad, reviews, prijs en comments. De client moet al die data weer combineren. Het resultaat? Voor de client veel complexiteit en overhead op het netwerk. Met GraphQL kun je een API-laag maken tussen de microservices en de front-end, als een soort gateway. Via deze GraphQL-gateway vraagt de client op basis van een single endpoint data op bij alle onderliggende microservices. Zo heeft de front-end geen last van de achterliggende complexiteit en kan het eenvoudig precies de data geleverd krijgen die het nodig heeft.

Hoe dit precies werkt, laat ik samen met collega’s Arjan van Dijk en Arin Roy zien in onze Tech Talk van afgelopen 13 april (zie link onderaan).

Overtuigende voordelen

GraphQL heeft niet alleen voordelen voor developers, maar ook voor de eindgebruiker en de business. Daarom ben ik er ook zo enthousiast over.

Dit zijn wat mij betreft de sterkste punten van GraphQL:

  • Nooit meer under- of overfetching. Met REST is het aan de orde van de dag: under- en overfetching. Dit te veel of weinig data ophalen voor de endpoints. De basis van het probleem ligt al in de API die vaak gebouwd is om zoveel mogelijk soorten front-ends te bedienen: van een web front-end met grote databehoefte tot de mobiele applicatie met een kleiner scherm en lagere databehoefte. Dan is er met REST al snel sprake van overfetching: te veel data. Underfetching gebeurt wanneer een API te weinig data teruggeeft en dus de nog missende informatie moet ophalen in een extra API-call. GraphQL haalt declaratief data op, oftewel heel specifiek bij een of meerdere API’s, waardoor je alleen terugkrijgt wat je opvraagt.
  • Sneller en energiezuiniger. Dankzij één endpoint – en geen under- en overfetching – zijn er dankzij GraphQL minder resources nodig aan de serverkant én aan de clientkant. Minder data ophalen betekent ook minder calls naar de onderliggende microservices. Het gevolg is een sneller resultaat en een lager accugebruik bij mobiele devices. Die seconde minder laadtijd kan net het verschil maken of een klant een applicatie wel of niet gebruikt.
  • Extreme flexibiliteit. Met GraphQL kun je makkelijk nieuwe API’s bijbouwen en meenemen in je query’s. Zonder dat ze vertragen of aan kwaliteit inboeten. Bovendien speel je met GraphQL simpel in op het type applicatie van de client. Bij mobile wil je minder data weergeven dan via web. Dat is de kracht van GraphQL: je kunt de data weergeven die je wilt, afhankelijk van het soort client.
  • Echt agile werken. Waar je met meerdere teams werkt aan een e-commerce-oplossing, applicatie of publieke site, staat GraphQL het toe dat je tegelijkertijd dingen kunt veranderen. Hierdoor kunnen meerdere teamleden agile samenwerken en bouwen.
  • Lagere kosten. Als je API’s nodig hebt die geoptimaliseerd zijn voor alle front-ends en afnemers, dan zul je die allemaal moeten bouwen, beheren en hosten. De flexibiliteit van GraphQL maakt hier een eind aan. Dit bespaart dus werk en daarmee geld. ‘One API to rule them all’ – van web tot mobile.

GraphQL en Microsoft .NET zijn dé combo

Samen met mijn teams kies ik voor de implementatie van GraphQL voor het platform van ChilliCream. Wij zien dat als het meest flexibele en toekomstvaste framework, met goed bijgehouden repository’s. Er bestaat overigens al een hele infrastructuur om zelf laagdrempelig GraphQL te implementeren. Denk dan aan goede documentatie, downloadbare repository’s, packages die je meteen kan installeren en natuurlijk zelfhulp YouTube-filmpjes.

Het mooie van de Microsoft .NET-implementatie van ChilliCream is ook nog eens dat je die overal kunt inzetten: of dat het nou in je on-premises datacenter is, in Microsoft Azure, Amazon Web Services of Google Cloud. Je kunt het zelfs op niet-Microsoft gebaseerde infrastructuur hosten, zoals Docker-images gebaseerd op Linux. Dat maakt het erg portable, je zit niet vast aan een platform of cloudomgeving. Hoewel je ontwikkelt in een Microsoft-technologie, kun je het dus prima in een niet-Microsoftwereld toepassen.

Soepele customer journey's

GraphQL is voor ons bij Capgemini geen innovatieve luxe, maar een echte noodzaak. Onze klanten behoren tot de nationale en internationale top. Ze bedienen tienduizenden of zelfs miljoenen klanten en hebben te maken met keiharde concurrentie. Dat daagt ons continu uit om de beste technologische oplossingen te vinden voor hun dienstverlening. Zoals GraphQL. Met een snelle, soepele of zelfs verrassende customer journey blijven onze klanten ‘ahead of the curve’. Het is erg mooi om als consultant of developer dit soort innovaties te introduceren in een organisatie, en vervolgens te zien hoe goed het uitpakt. GraphQL is een echte gamechanger ­– voor de klant én voor ons.

Bekijk de Tech Talk van Donald, Arjan en Arin over GraphQL en .NET

In onze Tech Talk van 13 april laten Donald Hessing en solution architect Arin Roy zien hoe je een GraphQL-server creëert in .NET met gebruik van HotChocolate. Daarna legt software architect en developer Arjan van Dijk uit hoe je met GraphQL een eenduidig platform bouwt voor een applicatie die werkt met microservices.

 

Over Donald, Arjan & Arin

Donald Hessing is hoofd Microsoft bij Capgemini. Opgegroeid met de Commodore 10 en in 2009 een van de eerste Microsoft Certified Masters ter wereld. Hij zet zich vanuit de afdelingen Digital Customer Experience en Custom Software Development in voor het betere maatwerk bij complexe opdrachtgevers. Samen bouwen en implementeren zij software die een bedrijf op voorsprong zet.

Arjan van Dijk is managing consultant bij Capgemini en heeft meer dan twintig jaar ervaring met development en IT. Stapte in 2020 over van zijn eigen bedrijf naar Capgemini – om innovatieve projecten te doen voor grote internationale spelers. Ontwikkelde zich in zijn eerste jaar meteen als expert op het gebied van GraphQL.

Arin Roy werkt als consulting developer en solution architect bij Capgemini. Hij is een ervaren .NET developer die veel heeft gewerkt met web- en desktop-applicaties vanaf .NET Framework 2.0. Zijn focus ligt op cloud-native en identiteitsoplossingen in Microsoft Azure.