Adonis com GraphQL

Alexandre E Souza
jslovers
Published in
3 min readJan 25, 2019

--

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 :)

--

--