REST eller GraphQL för små team?

blog 4 cover

GraphQL är kraftfullt, elegant och rejält hajpat. Men betyder det att du borde överge REST i ditt nästa projekt? För de allra flesta små team är svaret nej – och resonemanget bakom är värt att förstå innan du väljer.

Problemet GraphQL faktiskt löser

Med REST hämtar klienten ofta för mycket eller för lite data. En mobilskärm behöver kanske bara tre fält, men ändpunkten skickar tjugo. Eller så krävs tre separata anrop för att rita en enda vy. GraphQL löser det genom att låta klienten beskriva exakt vad den vill ha, i en enda förfrågan.

För komplexa gränssnitt med många olika datakällor och flera typer av klienter är det en verklig och märkbar vinst.

Vad det kostar dig

GraphQL flyttar komplexiteten till servern. Du tappar den enkla HTTP-cachningen som REST får nästan gratis, och måste lösa caching själv. Du måste bevaka dyra, djupt kapslade förfrågningar och skydda dig mot att en enda query sänker hela API:t. Det är extra yta att bygga, förstå och underhålla.

REST däremot är enkelt, cachebart, lätt att felsöka och något varje utvecklare och verktyg redan förstår. Den enkelheten har ett värde som är lätt att underskatta.

REST eller GraphQL för små team?
REST exponerar flera ändpunkter medan GraphQL samlar allt bakom en enda ändpunkt med resolvers.

Min tumregel

Har du ett fåtal klienter och relativt förutsägbara vyer? Börja med REST. Det tar dig långt, snabbt. Har du många olika klienter – webb, iOS, Android, partners – som alla behöver olika utsnitt av samma data? Då börjar GraphQL betala för sig.

Du behöver inte heller välja för all framtid. Ett vanligt och pragmatiskt upplägg är ett REST-API i grunden, med GraphQL tillagt ovanpå just de delar där flexibiliteten verkligen behövs.

Ett ärligt råd

Välj inte teknik för att den ser bra ut på CV:t eller för att en konferenstalare var entusiastisk. Välj efter det konkreta problem du har framför dig. Den bästa arkitekturen är ofta den tråkigaste – den som ditt team redan kan, och som låter er fokusera på produkten i stället för på verktyget.

Sammanfattning

För de flesta små svenska team räcker ett välutformat REST-API mycket långt. Det är snabbt att bygga, lätt att förstå och billigt att driva. Lägg GraphQL ovanpå den dagen din komplexitet faktiskt motiverar det – inte en dag tidigare.