/demo-graphql

Example Foxx Service using GraphQL

Primary LanguageJavaScriptApache License 2.0Apache-2.0

GraphQL Demo Foxx Service

This is a GraphQL demo service for ArangoDB 3.1 and higher using the graphql-sync wrapper for graphql-js and the Foxx GraphQL extensions for ArangoDB.

This service implements two API endpoints:

POST /graphql

and

GET /graphql

The endpoint accepts well-formed GraphQL queries based on the GraphQL Star Wars data set, e.g.:

{
  hero(episode: "NewHope") {
    name
    friends(species: DROID) {
      name
    }
  }
}

returns:

{
  "data": {
    "hero": {
      "name": "Luke Skywalker",
      "friends": [
        {
          "name": "C-3PO"
        },
        {
          "name": "R2-D2"
        }
      ]
    }
  }
}

The request body can also be a JSON object with a query attribute.

Open the endpoint in the browser to explore the data set and schema using the GraphiQL explorer.

To learn more about GraphQL see the official GraphQL spec and the official introductory blog post.

Check the file schema.js to see how GraphQL schemas can be given access to ArangoDB collections. Check the files in the test folder to see examples of GraphQL queries and their results.

License

This demo service is licensed under the Apache 2.0 license.

The demo data set and test cases are based on the test fixtures and test suites of the graphql-js project and used under the BSD license and Facebook patent grant.