Comment on page
Sobre o GraphQL
O GraphQL é uma linguagem de consulta para APIs e uma runtime para atender essas consultas com os dados existentes. Ao contrário do REST, nele você pode compor a sua requisição como achar melhor.
Quando você pensa em Facebook, provavelmente a primeira coisa que vem à cabeça são fotos de gatinhos e parentes distantes, mas eles também criam tecnologias interessantes, como o GraphQL.
O GraphQL é uma linguagem de consulta para APIs e uma runtime para atender essas consultas com os dados existentes. O GraphQL fornece uma descrição completa e compreensível dos dados em sua API, oferece aos clientes o poder de solicitar exatamente o que eles precisam e nada mais, facilita a evolução das APIs ao longo do tempo e permite ferramentas poderosas para o desenvolvedor.
Ou seja, é uma forma alheia ao REST de executar requisições para APIs, onde você pode escolher quais informações retornar, executar múltiplas queries não co-dependentes em uma mesma requisição. Além de ser muito conveniente para nós, do lado da API, não precisar ficar alterando os endpoints para atender novas funcionalidades.
O GraphQL nos permite construir uma aplicação mais dinâmica e atender melhor às necessidades específicas dos clientes que utilizam a API sem precisar fazer modificações que afetem todos os usuários.
Você sabe aquele momento que percebe que o seu backend está tão cheio de gambiarras funcionalidades novas que começa a se tornar um emaranhado de código que ninguém mais entende completamente. Como aquelas empresas com aplicações em COBOL e que cobram absurdamente caro para implementarem melhorias, já que os programadores não sabem o quê vai quebrar até mesmo pra tirar um comentário? Pois é... motivo número 1. (Isso justifica não apenas o GraphQL, mas o porque é bom refazer as coisas de tempos em tempos).
GraphQL facilita muito a nossa vida ao reduzir os controllers do modelo MVC. Além de outras vantagens para nós e para você integrar com a API. Dentre elas:
- Volume menor de requisições para a API, encadeando várias queries que não dependem umas das outras, em uma mesma requisição;
- É fortemente tipado, evitando possíveis bugs ao receber dados em um formato inesperado;
- O corpo e tempo de resposta das requisições é menor, uma vez que é possível escolher somente as informações necessárias.
Nós estamos gostando do GraphQL e esperamos que você também consiga se divertir fazendo as queries e usando os geradores de código que vem no pacotão de algo que disponibiliza um schema que contém tudo o que pode ser feito com a API.
Para mais materiais e outras utilidades, consulte essa lista de coisas legais para GraphQL: https://github.com/chentsulin/awesome-graphql
Last modified 3yr ago