Loading Softdesign

SoftDrops sobre GraphQL

Bruna Leite
por Bruna em 17/09/2019
3 minutos de leitura

No dia 11 de setembro, o desenvolvedor William Bartz apresentou aos colegas, no SoftDrops, a GraphQL: uma linguagem e especificação de consulta de dados desenvolvida internamente pelo Facebook em 2012, que tornou-se de código aberto (open source) em 2015. Seu principal objetivo é aumentar a produtividade do desenvolvedor, uma vez que minimiza a quantidade de solicitação e transferência de dados.

Empresas como GitHub, The New York Times, PayPal, ZapImóveis, Twitter, JusBrasil, Coursera e GetNinjas utilizam essa forma de consulta de dados para facilitar e agilizar o trabalho do profissional de desenvolvimento de software. Mas afinal, como a GraphQL funciona?

Queries, mutations e subscriptions

De forma geral, a GraphQL possui três estruturas principais: as queries, as mutations e as subscriptions. As queries são as consultas de dados que são feitas e que retornam resultados; as mutations são linhas de comando no código que são construídas caso se queira alterar algum dado dentre os que foram consultados; e as subscriptions são uma espécie de notificação em tempo real quando alguma mutation é realizada no servidor GraphQL.

Com a linguagem, você pode fazer requisições e obter exatamente os dados que precisa consultar. A requisição por meio da GraphQL é feita diretamente as APIs que estão conectadas ao computador, como por exemplo Legacy System, Microservices e RESTful API.

Para fazer uma requisição basta descrever os dados que você precisa solicitar na interface do servidor GraphQL. Assim, o sistema fará a requisição (query) e irá retornar os dados que encontrou.

Dados requisitados utilizando GraphQL.
Dados recebidos utilizando GraphQL.

Vantagens de utilizar a GraphQL

Ao invés de você solicitar uma requisição a diversos endpoints diferentes (dispositivos de computação remota que se comunicam com a rede ao qual estão conectados), você irá solicitar para apenas um deles, e este fará a solicitação para você, numa espécie de ‘requisição centralizada’. “Assim, é possível buscar três diferentes informações ao mesmo tempo, sem precisar conectar em diferentes APIs para atingir tal resultado”, explicou William.

A linguagem pode ser utilizada quando, em uma base de dados, você tem acesso a apenas um dado, mas quer descobrir os demais que estão atrelados a ele e que já constam nesta base. Por exemplo: nome, e-mail e telefone. Assim, você faz uma query utilizando o nome da pessoa, e o sistema retorna com o e-mail e telefone dela. Caso necessite alterar algum deles, é necessário apenas utilizar o comando mutation.