REST e GraphQL sono due modi di costruire un'API. REST è semplice e collaudato; GraphQL lascia che i client chiedano esattamente i dati che servono. Nessuno è «migliore» — si adattano a situazioni diverse.
La differenza chiave
Con REST, il server definisce endpoint fissi che restituiscono ciascuno una forma di dati fissa. Con GraphQL, c'è un endpoint e il client descrive esattamente ciò che vuole. GraphQL evita l'over-fetching; REST è più semplice da costruire, mettere in cache e ragionare.
| REST | GraphQL | |
|---|---|---|
| Endpoint | Molti, fissi | Uno, flessibile |
| Forma dati | Decide il server | Decide il client |
| Cache | Semplice (HTTP) | Più lavoro |
| Curva di apprendimento | Bassa | Più alta |
Quando REST è la scelta giusta
Per la maggior parte delle API — un backend di sito, un'app mobile, un'integrazione di terzi — REST è lo standard pragmatico. È compreso universalmente, facile da mettere in cache, e c'è uno strumento per tutto. Non aggiungere la complessità di GraphQL senza motivo.
Quando GraphQL vale la pena
GraphQL brilla quando molti client diversi hanno bisogno di porzioni diverse di dati complessi e collegati — pensa a un'app ricca che attinge da decine di tipi, dove REST significherebbe molti round-trip o risposte gonfie.