2

how can i use adonis with GraphQL?

i had search much more Tutorial but never,so i have to ask for help to you

i had create schema.ts in project like this :

import { makeExecutableSchema } from 'graphql-tools'
import resolvers from './resolvers'
// Define our schema using the GraphQL schema language
const typeDefs = `
  type Items {
    id: Int!
    type:String
  }
  type Query {
    fetchItems(): [Items]
  }
`
export default makeExecutableSchema({ typeDefs, resolvers })
import Button from 'App/Models/Button'

// Define resolvers
const resolvers = {
  Query: {
    async fetchItems() {
      const button = await Button.findBy('id', 1)

      return button?.buttons || []
    },
  },
}
export default resolvers

but i do not known how use grapql in route.js.

i try code like this but failed

'use strict'
const Route = use('Route')
const GraphqlAdonis = use('ApolloServer')
const schema = require('../app/data/schema')

Route.route(
  '/graphql',
  ({ request, auth, response }) => {
    return GraphqlAdonis.graphql(
      {
        schema,
        context: { auth },
      },
      request,
      response
    )
  },
  ['GET', 'POST']
)

Route.get('/graphiql', ({ request, response }) => {
  return GraphqlAdonis.graphiql({ endpointURL: '/graphql' }, request, response)
})

Attach my profile package.json:

  "dependencies": {
    "@adonisjs/core": "^5.7.5",
    "@adonisjs/lucid": "^17.2.0",
    "@adonisjs/repl": "^3.1.10",
    "adonis-apollo-server": "^1.0.2",
    "graphql": "^16.3.0",
    "graphql-tools": "^8.2.7",
    "luxon": "^2.3.1",
    "pg": "^8.7.3",
    "proxy-addr": "^2.0.7",
    "reflect-metadata": "^0.1.13",
    "slugify": "^1.6.5",
    "source-map-support": "^0.5.21"
  }
邱彦兮
  • 21
  • 1

0 Answers0