Introdução ao GraphQL

O Facebook em 2015 apresentou o GraphQL, uma nova forma de construir APIs mais rápidas e inteligentes que vem ganhando uma enorme força nos últimos tempos.
Seguindo a definição apresentada pelo próprio site do GraphQL: Se trata de uma linguagem de consulta da sua API que em tempo de execução consulta seus dados. O GraphQL tem o poder de permitir ao seus usuários definir quais informações ele deseja, e só o que e solicitado sera retornado.
Para quem esta acostumado com API REST, nos temos o seguinte: um endpoint e um retorno:
O GraphQL vai funcionar da seguinte forma:
Vou executar uma consulta personalizada e vou ter o retorno adequado a minha consulta:
Nesse exemplo eu solicitei apenas nome e idade dos usuários e somente essas informações foram retornadas da minha consulta.
Como o GraphQL funciona?
Vou explicar superficialmente as camadas do GraphQL, vou deixar para explicar detalhadamente em um próximo artigo quando for colocar em pratica. O GraphQL funciona de forma bem simples na verdade, vai ser suficiente para entender como tudo funciona.

Types
Os Types são basicamente nossos modelos, vamos definir como são as estruturas que vão estar presentes.
Queries
As Queries são a forma de você definir quais consultas podem ser realizadas nos seus modelos.
Mutations
O foco do GraphQL e na consulta de dados, mas também e possível realizar alterações nos dados através das Mutations.
Resolvers
O resolvers e a sua camada que vai trabalhar com acesso a banco de dados para trazer as informações ou realizar alterações.
Ainda vou realizar uma publicação de como realizara construção de uma simples API utilizando GraphQL com NodeJS utilizando Express.
