This is a simple spec-compliant GraphQL rack application and middleware based on the graphql gem. Since it's built with Rack, it can be mounted with most ruby web servers.
Install the gem:
gem install graphql_server
Using the server
As a standalone application
# app.ru
require 'graphql_server'
type_def = <<-GRAPHQL
type Query {
hello: String
}
GRAPHQL
resolver = {
"Query" => {
"hello" => Proc.new { "world" }
}
}
run GraphQLServer.new(type_def: type_def, resolver: resolver)
Start using rackup
rackup app.ru
As a middleware in your existing application
# app.ru
require 'graphql_server'
type_def = ...
resolver = ...
use GraphQLServer, type_def: type_def, resolver: resolver
Options
Schema
You can get started fast by writing a type defintions and a resolver hash
GraphQLServer.new(type_def: type_def, resolver: resolver)
You can also provide your own schema
GraphQLServer.new(schema: schema)
See the examples folder for more details
GraphQL Playground
You can use the excellent GraphQL Playground IDE from Prisma
gem install graphql_playground
Map it to the url of your choice and point it to your GraphQL server endpoit
map '/playground' do
use GraphQLPlayground, endpoint: '/'
end
run GraphQLServer.new(type_def: type_def, resolver: resolver)