Skip to content
MichaelJCompton edited this page Feb 22, 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 for Dgraph. 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 langauge
  • 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)[Example].

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

GraphSchema is free it 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 :-)