REST en GraphQL zijn twee manieren om een API te bouwen. REST is eenvoudig en beproefd; GraphQL laat clients precies de data vragen die ze nodig hebben. Geen van beide is «beter» — ze passen bij verschillende situaties.
Het kernverschil
Bij REST definieert de server vaste endpoints die elk een vaste datavorm teruggeven. Bij GraphQL is er één endpoint en beschrijft de client precies wat hij wil. GraphQL vermijdt over-fetching; REST is eenvoudiger te bouwen, te cachen en te doorgronden.
| REST | GraphQL | |
|---|---|---|
| Endpoints | Veel, vast | Eén, flexibel |
| Datavorm | Server beslist | Client beslist |
| Caching | Eenvoudig (HTTP) | Meer werk |
| Leercurve | Laag | Hoger |
Wanneer REST de juiste keuze is
Voor de meeste API's — een website-backend, een mobiele app, een externe integratie — is REST de pragmatische standaard. Het wordt universeel begrepen, is makkelijk te cachen, en er is voor alles een tool. Voeg de complexiteit van GraphQL niet zonder reden toe.
Wanneer GraphQL zich loont
GraphQL blinkt uit wanneer veel verschillende clients verschillende stukken van complexe, verbonden data nodig hebben — denk aan een rijke app die uit tientallen types put, waar REST veel heen-en-weer of opgeblazen antwoorden zou betekenen.