REST e GraphQL são duas formas de construir uma API. REST é simples e comprovado; GraphQL deixa os clientes pedir exatamente os dados que precisam. Nenhum é «melhor» — encaixam em situações diferentes.
A diferença-chave
Com REST, o servidor define endpoints fixos que devolvem cada um uma forma de dados fixa. Com GraphQL, há um endpoint e o cliente descreve exatamente o que quer. O GraphQL evita o over-fetching; o REST é mais simples de construir, colocar em cache e raciocinar.
| REST | GraphQL | |
|---|---|---|
| Endpoints | Muitos, fixos | Um, flexível |
| Forma dos dados | Decide o servidor | Decide o cliente |
| Cache | Simples (HTTP) | Mais trabalho |
| Curva de aprendizagem | Baixa | Mais alta |
Quando REST é a escolha certa
Para a maioria das APIs — um backend de site, uma app móvel, uma integração de terceiros — o REST é o padrão pragmático. É compreendido universalmente, fácil de colocar em cache, e há uma ferramenta para tudo. Não adicione a complexidade do GraphQL sem razão.
Quando o GraphQL compensa
O GraphQL brilha quando muitos clientes diferentes precisam de fatias diferentes de dados complexos e ligados — pense numa app rica que puxa de dezenas de tipos, onde o REST significaria muitas idas e voltas ou respostas inchadas.