Adonis com GraphQL
Nesse artigo, vamos usar a api que criamos com graphQL usando o framework javascript Adonisjs, um framework bem interessante que lembra muito o laravel.
Para facilitar nossa vida, criei uma estrutura com algumas coisas bem interessantes. https://github.com/devalexandre/adonis-graphQL
agora vamos criar nosso banco graphql, fiquem avontade para usar outro nome.
Apos isso vamos rodar as migrations
adonis migration:run
feito isso ele vai subir nossas migrations, agora vamos ver alguns arquivos importantes, nosso package.json temos os seguintes pacotes adcionais
"adonis-apollo-server": "^1.0.2","graphql": "^14.0.2","graphql-tools": "^4.0.1",
Esses pacotes nos ajudaram na magica, hehe se estiver usando uma instalação do adonis com jwt apenas pode adcionar esses pacotes ao seu arquivo e instalar via npm.
Apos instalar é importante adicionar os providers no app.js
Agora em app vamos criar a pasta data com 2 arquivos
em schema.js irá ficar nossos schemas , typos que iremos usar
temos apenas 2 tipos User e Post o type query são os metodos que podemos usar, ja as mutations são como funções que podemos executar a grosso modo.
Vamos focar no user e post por hora
type User {
id: Int!
username: String!
password: String
email: String!
posts: [Post]
}
Eis nosso usuário, usando o user base do adonis para que possamos usar a auth, notem que os tipos são bem conhecidos, e quando se faz referencia a algum tipo criado como post usamos [].
Vamos ver nosso arquivo resolvers.js para voltarmos aqui depois.
Esse arquivo é bem interessante, pois nele temos as query que são nossas buscas, e temos nossas mutations, que são onde iremos criar nossas rotinas
As Querys são simples, pois nelas iremos fazer as buscas e retornar um json, e em algumas mutations nos recebemos json e devolvemos json, vamos ver nosso router para entender como ficara.
Nosso router tem algo bem interessante temos 2 rotas apenas a rota com /graphiql pode ser usada via navegador, para fazer testes.
iremos usar o Insomnia para testar, como no exemplo acima cadastramos no ussuario, para logarmos faremos da seguinte forma.
ele retornara a token que iremos usar para adcionar um post
Como não passamos a token, ele retorna o erro, para isso temos que passar a token do usuário logado.
E VUALA !!! eis nosso post, lembrando pessoal que é uma app simples apenas para mostrar como é facil usar o adonisJS com graphQL tendo um auth descente :)