Skip to content
A Dgraph API Boilerplate
Go Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
api
auth
db
payloads
.gitignore
.travis.yml
LICENSE
Makefile
README.md
logo.jpg
main.go
schema.txt

README.md

A Boilerplate DGraph API

GoDoc GitHub version Build Status

Dgraph is a powerful graph database written in Go. The query language for DGraph is based off of GraphQL, called GraphQL+-.

This API is a nice way to interface with Dgraph data, and has the 3 following endpoints:

  • /query
  • /mutate
  • /alter

To understand what mutations and alterations are, you can take a look over here to understand the fundamentals of graph database interactions.


Getting Started

Install Dgraph

Your first step is to install dgraph. You can download and install from DGraph's main site over here.

One important note is that this API uses docker as middleware, so please follow the 'From Docker Image' instructions in the link I posted previously. If you don't have docker installed on your machine, you can find the installation instructions from them over here.

Start DGraph

Run the following command to get your dgraph instance running locally via the included docker compose file:

docker-compose up -d

This will start Dgraph Server, Zero (Dgraph Instance Manager) and Ratel (Dgraph Console UI).

DEPRECATED (Dgraph prior to dgraphzero implementation)

Run DGraph instance with ports mapped:

docker run --rm -it -p 8080:8080 -p 9080:9080 -v ~/dgraph:/dgraph --name dgraph dgraph/dgraph dgraph --bindall=true --memory_mb 2048


Install Go dependencies

While you're at the root of the project, run:

go get ./...

This will install the required dependencies of the whole project

Build project

Run:

make build

Run project

Run:

make run


GraphQL+- Samples

GraphQL+- Sample Query

POST - http://localhost:5000/query

Purpose:

This query will get an Event with all the available parameters. It will get an Event with 'uid' of 0x3.

Body:
{
	Event(func: uid(0x3)) {
		uid
	    name
	    description
	    location
	    time
	    working_group {
	      name
	      description
	    }
	    chapter {
	      name
	      location
	      contact {
	        name
	        email
	        facebook
	        twitter
	      }
	    }
	}
}

GraphQL+- Sample Mutation

POST - http://localhost:5000/mutate

Purpose:

This is a sample mutation that will create a new Event with the parameters given.

Body:
{
	"name":"Name of event",
	"description":"Event's description.",
	"location": {
		"type": "Point", 
		"coordinates": [17.8803304,-245.6662756]
	},
	"time":"2018-05-01T15:30:00Z",
	"working_group": {
		"name": "Chapter working group",
		"description": "Chapter working group "
	},
	"chapter": {
		"name": "Hosting chapter",
		"location": {
			"type": "Point", 
			"coordinates": [41.8803304,-87.6662756]
		},
		"contact": {
			"name":"John Doe",
			"email":"doe@hotmail.com",
			"facebook":"John Doe",
			"twitter":"@johndoe"
		}
	}
}

Built using:

You can’t perform that action at this time.