Skip to content
MichaelJCompton edited this page Feb 23, 2019 · 8 revisions

GraphSchema documentation

This is the documentation for the GraphSchema tool that runs GraphQL API endpoints on top of a Dgraph backend database.

GraphSchema takes any GraphQL schema file that follows the Schema Conventions and turns it into a running GraphQL endpoint.

Getting GraphSchema

GraphSchema is currently released as an early alpha in a container image in the docker hub at mjcomp/graphschema.

Running GraphSchema

GraphSchema runs a GraphQL API using Dgraph as a backend database. All it needs to serve the API is a GraphQL schema file and a connection to a Dgraph database.

GraphSchema instances are stateless and designed to be easy to run as GraphQL data services. Once GraphSchema has installed a schema and some metadata in Dgraph, you can scale up your GraphSchema endpoints per load, stop and restart GraphSchema, run GraphSchema from a different host/container/pod. An app built on GraphSchema can easily bring up and tear down dev and test environments in kubernetes, etc.

Main features

  • Running GraphQL API directly from schema
  • Graph database backend for a graph query language
  • Exposes all the Dgraph query power, plus GraphQL
  • Stateless API endpoint made for containers
  • Easily run GraphQL API replicas against a single backend DB

GraphSchema exposes a GraphQL endpoint over HTTP, so you can consume it however you consume GraphQL. In development and testing, you might use insomnia, a GraphQL chrome extension, or postman. An app built on GraphSchema might use a javascript framework. Go, Java, etc. might post directly to the endpoint using HTTP.

More Info

Explore these docs and look at the Example.

Check out the Roadmap and Issues to see where it's heading.

GraphSchema is free to use. Though, it's not open source at this stage. I have ideas around a full-featured product with the current and much larger set of features; there's also the option of open sourcing the bulk of the tool as I develop it and running a hosted GraphQL service using it as the backend. Not making any commitments at the moment; let's just see where the winds take it :-)