15
GraphQl - Introdução
A query language for you API
GraphQL é uma linguagem de Query (bem como SQL) criada pelo Facebook em 2012 e lançada publicamente em 2015. É visto pela comunidade como uma alternativa ao padrão REST, o qual reina sobre o desenvolvimento.
É importante eliminar logo de cara a ideia de que o GraphQL vai matar o REST. Ambos os estilos de arquitetura possuem suas próprias características e cada uma se encaixa em situações diferentes.
A principal função do GraphQl é evitar o Overfetching, ou seja buscar da requisição apenas o necessário, isso em ambientes como AWS que tem a monetização pay per use (cobra pelo tráfego da informação) é uma mão na roda, ja que você não gasta dinheiro atoa com dados de uma requisição que vocẽ não precisaria.
npm init -y
yarn init -y
npm install apollo-server graphql
yarn add apollo-server graphql
Starter index.js
Sem definição de tipos do GraphQl.
Observação!
No graphQl toda requisição é post, e toda Request bate no mesmo endpoint que por convenção é /graphql .
Então, como é que a requisição sabe oque ela precisa fazer ou que rumo ela precisa tomar?
R: Nós fazemos isso por meio de Query, Mutation.
Se nós quisermos listar as informações específicas de um usuário por exemplo nos usamos Query
Em paralelo com HTTP ela seria o método GET
Já Mutation ele serve pra quando queremos manipular dados
Em paralelo com HTTP (POST/PUT/PATCH/DELETE)
São basicamente os tipos primitivos que temos, são eles:
- String
- Int
- Boolean
- Float
- ID
Beleza, então como escrevemos agora um hello world com GraphQl?
Dentro das definições de tipos nos diremos oque o usuário poderá pesquisar, assim:
Imagem das definições de tipos
Logo em seguida, diremos oque o usuário poderá obter com os 'resolvers', ao realizar uma consulta onde tentará trazer o hello por meio de sua requisição do tipo Query.
Observação!
O GraphQl usa o mapeamento de 1-1 logo a primeira informação a ser consultada na Query, deve ser também a primeira a ser trazida no resolver de sua Query e assim sucessivamente.
Imagem da Query + Resolver
Primeiro inicializamos o servidor.
node src/index.js
🚀 Server Started at http://localhost:4000/
Aqui nesse exemplo: executaremos uma Query assim como definimos no tipo de requisição, e ele deverá trazer os dados estabelecidos pelo Resolver baseado no mapeamento de 1 por 1. Assim:
Agora você acabou de fazer sua primeira chamada API utilizando o graphQL, simples não?