A necessidade do cliente vem primeiro
Considere uma tela de curso que mostra título, professora e as três primeiras aulas. Em REST, podemos oferecer um endpoint com um recurso claro (GET /cursos/arquitetura) e decidir se ele devolve os campos necessários. Em GraphQL, o cliente declara os campos de que precisa numa consulta tipada. As duas opções podem resolver o caso.
Abrir diagrama em tamanho original
GraphQL ajuda quando clientes diferentes precisam combinar campos de muitos recursos e o contrato de consulta é útil. Em contrapartida, exige controlar custo e profundidade das consultas, autorização em campos, observabilidade e cache. REST costuma aproveitar semântica HTTP, recursos e infraestrutura de cache mais direta, mas endpoints demais ou respostas rígidas podem criar chamadas extras.
Decida pelo uso real
Mapeie clientes, operações, frequência de mudança, segurança, cache e ferramentas disponíveis. Não escolha pela possibilidade abstrata de “buscar só o necessário”; verifique se isso reduz um problema medido sem criar outro custo maior.
Recupere: que controles você acrescentaria a uma API GraphQL pública?
Pratique com /aprender
/aprender Compare REST e GraphQL para uma tela de catálogo usada por web e celular. Peça que eu liste dados, operações, cache, autorização e custos de execução. Não declare um vencedor universal; peça que eu selecione a alternativa dadas as restrições e justifique cada trade-off.
