Pular para o conteúdo

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.

Site / parceiros → RESTApp móvel → GraphQLREST → Serviço AGraphQL → Serviço AServiço A → gRPCgRPC → Serviço BSite / parceirosSite / parceirosApp móvelApp móvelREST — recursos + HTTPRESTrecursos + HTTPGraphQL — cliente escolhe camposGraphQLcliente escolhe camposServiço AServiço AServiço BServiço BgRPC — protobuf, HTTP/2gRPCprotobuf, HTTP/2

Arraste para o lado para ver o diagrama inteiro.

Um arranjo comum: REST para o público, GraphQL para apps com telas variadas e gRPC entre serviços internos.

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

Referências

Continue aprendendo

Todos os temas de arquitetura de software →