Arquitetura de software · Comunicação · 6 min de leitura
APIs: REST, GraphQL ou gRPC
Três formas de expor uma API, com trocas diferentes entre simplicidade, flexibilidade para o cliente e desempenho entre serviços.
Arraste para o lado para ver o diagrama inteiro.
REST
Recursos com URLs (/pedidos/123) e verbos HTTP. Simples, cacheável e entendido por qualquer ferramenta. Pode exigir várias chamadas ou trazer campos demais.
GraphQL
Um único endpoint e uma linguagem de consulta: o cliente pede exatamente os campos que quer. Ótimo para apps com muitas telas; exige cuidado com consultas caras (limites de profundidade e custo) e o cache HTTP fica mais difícil.
gRPC
Contratos em Protocol Buffers, mensagens binárias sobre HTTP/2 e suporte a streaming. Rápido e fortemente tipado, ideal entre serviços; menos prático direto no navegador.
Em resumo
- REST: simples e cacheável.
- GraphQL: o cliente escolhe os campos.
- gRPC: binário, rápido, tipado, para serviços internos.
- Versione e documente qualquer que seja o estilo.