Logotipo da linguagem de consulta GraphQL

Completando dez anos, a linguagem de consulta desenvolvida pelo Meta (antes Facebook) segue sendo alternativa referência no ecossistema tech mundial

Por que o Facebook (Meta) criou o GraphQL?

graphql 4 de Fev de 2022

Linguagem de consulta se tornou pública em 2015 e até hoje segue como referência no desenvolvimento de novas aplicações

Podemos citar inúmeras inovações tecnológicas proporcionadas pelo Meta (antes chamado Facebook) na última década, não nos limitando apenas ao React e React Native. Entre tantas, uma das mais referenciadas e utilizadas hoje no mercado de TI é o GraphQL, criada em 2012.

A linguagem nasceu para ser uma alternativa substituta ao modelo convencional do REST, arquitetura de desenvolvimento criada na década de 90 com o objetivo de ampliar a comunicação entre sistemas.

Trata-se de uma linguagem de consulta (query language) para tornar APIs mais rápidas, flexíveis e intuitivas para pessoas desenvolvedoras, principalmente no quesito gestão de dados entre front e backend.

Em resumo, isto é GraphQL: uma técnica de programação que fornece leitura compreensível e completa de dados dentro de uma determinada API, com a finalidade de dar ao cliente “o poder de perguntar e obter informações específicas e exatas sobre o que precisa”.

Note que, reforçando, GraphQL não é uma tecnologia de base de dados, mas sim uma linguagem de consulta para APIs. Dessa forma, pode ser utilizada em qualquer contexto onde uma API é utilizada.

Neste artigo, vamos abordar principalmente o contexto em que o GraphQL foi criado e as consequências de sua usabilidade no mercado. Iremos falar sobre alguns conceitos básicos sobre REST e GraphQL, com algumas referências de estudos práticos. Boa leitura!

REST e o modelo convencional

Como antecipamos anteriormente, REST é uma arquitetura de desenvolvimento criada na década de 90 para preencher demandas da época. Fica meio óbvio perceber que, com o avanço das tecnologias da web, em determinado momento ela iria sofrer algumas mudanças de perspectiva — apesar de ser adaptável dentro de contextos específicos (e não caindo em total desuso).

Basta a gente pensar que na década de 90 sequer existiam aplicações móveis populares para entendermos que demandas contemporâneas requerem soluções modernas.

Vou citar três fatores que influenciaram, nos últimos anos, a mudança de perspectiva e a necessidade de uma tecnologia alternativa.

  1. Aumento de aplicações móveis que exigem comportamentos dinâmicos e rápidos na leitura de dados;
  2. Diversidade de frameworks frontend e plataformas executadas no lado do cliente (client-side) — tornando difícil criar e sustentar uma única API que preencha os requisitos de uma variedade de clientes.
  3. Velocidade de desenvolvimento e a expectativa de aplicações diferenciadas, rápidas e fluidas.

A principal desvantagem que uma API REST adquiriu ao longo do tempo foi a dificuldade de tornar a busca por dados (data fetching) dinâmica. Em uma API REST, por exemplo, você precisa buscar um dado em múltiplos terminais (endpoints), causando sobrecarga de dados na busca (overfetching). Naturalmente, isso gera uma série de consequências, desde ambientais (por uso de energia na demanda intensa de servidores) até de produtividade (tempo).

Para entender na prática o funcionamento de uma API inserida no conceito de REST e RESTful, dê uma olhada nesta explicação detalhada de nosso educador, Mayk Brito.

Entra o GraphQL com o Meta

A necessidade de uma ferramenta que cumprisse com as demandas que o REST não suportava já era realidade, tanto que algumas empresas já procuravam alternativas para tapar o buraco internamente.

O Facebook (antes de ser Meta) criou o GraphQL em 2012 para resolver os problemas de data fetching (comunicação entre frontend e backend) que havia na implementação do “Feed de Notícias” nas aplicações iOS.

Na fase de desenvolvimento do recurso — que veio a ser essencial para o amadurecimento da rede social — surgiram diversos bugs e interferências porque não havia um consenso dos dados no frontend e no backend. A solução: criar uma linguagem de consulta que fizesse sentido para a stack deles, no caso, o React.

A solução foi o suficiente para dar continuidade ao desenvolvimento, tanto que três anos depois, o GraphQL foi anunciado na React.JS Conf de 2015 como um projeto open source, sob licença MIT.

É importante ressaltar que, apesar de ter sido desenvolvido pelo Meta e aplicado em seu ecossistema React, a linguagem opera de forma dinâmica em qualquer sistema onde um cliente se comunica com uma API. Apesar de ter nascido para solucionar problemas na órbita mobile, GraphQL foi muito mais adotado no contexto de tecnologias da web.

Demorou um tempo para que devs que não utilizam React perceberem que a linguagem não era limitada ao framework. Atualmente GraphQL é utilizado na produção de diversas tecnologias referências, como GitHub, Spotify e Twitter.

Ano passado, a nossa educadora Dani Evangelista fez uma experiência em um Code/Drops bastante interessante que mescla os conceitos de REST e GraphQL em uma única aplicação.

Ficou curioso e quer conhecer o uso destes conceitos na prática?

Marcadores

Felipe Buzzi

Content writer @ Rocketseat