GraphQL vs REST strategy
O curso compara GraphQL e REST do ponto de vista de times Rails. O ponto de partida é o inventário de clients que decide a questão: vários clients heterogêneos que você não controla ou cujo deploy não acompanha o servidor. Ele mostra o que o GraphQL resolve (over-fetching, under-fetching e um round trip só) e quanto custa: N+1 como padrão, perda do cache HTTP, queries sem limite de custo, autorização por campo e erros com 200. Trata ainda do que o REST oferece de graça, das opções intermediárias, do graphql-ruby no Rails e de quatro perguntas para decidir.
O que você vai aprender
- ✓A condição de clients em que o GraphQL compensa o custo
- ✓Os custos do GraphQL: N+1, perda do cache HTTP, limites de query e erros com 200
- ✓O que o REST oferece com URLs, logs, um portão de autorização e versão no path
- ✓Opções intermediárias: sparse fieldsets, endpoints compostos e backend-for-frontend
- ✓Como graphql-ruby, Dataloader, limites de complexidade e trusted documents entram no Rails
- ✓Quatro perguntas para decidir e para dizer não com argumentos
A pergunta por trás de GraphQL vs REST
Alguém numa reunião de planejamento diz "devíamos migrar para GraphQL". Ninguém na sala quer ser quem diz não a uma coisa mais nova, então o time passa um trimestre nisso. Dezoito meses depois, há dois jeitos de ler um Course da mesma tabela, e nenhum deles pode ser apagado.
Ler a aula completa grátis →Currículo
7 aulasA pergunta por trás de GraphQL vs REST
Por que a resposta costuma ser não para times Rails com Hotwire, e qual condição de clients muda isso.
O que o GraphQL resolve de verdade
Como over-fetching e under-fetching formam uma troca só, e as três condições em que o GraphQL compensa.
O que o GraphQL custa
Os custos do GraphQL: N+1 como padrão, cache HTTP perdido, queries sem limite, autorização por campo e erros com 200.
O que o REST te dá em silêncio
O que o REST entrega sem código extra: URL como cache key, logs e APM por path, autorização simples e versionamento.
O meio-termo que a maioria dos times precisa
Sparse fieldsets, endpoints compostos e backend-for-frontend como soluções mais baratas para endpoints gordos e telas com chamadas demais.
graphql-ruby numa aplicação Rails
Como o graphql-ruby entra no Rails: uma rota POST única, limites obrigatórios, batching com Dataloader e trusted documents.
Decidindo, e o default honesto
Quatro perguntas para decidir, o padrão honesto para times Rails e como dizer não propondo algo mais barato.