All Projects → jhwoodward → Neo4j Graphql

jhwoodward / Neo4j Graphql

Licence: mit
An optimized neo4j query resolver for Facebook's GraphQL

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Neo4j Graphql

Mongoke
Instant Graphql for MongoDb (active branch is golang, rewrite in process)
Stars: ✭ 203 (+238.33%)
Mutual labels:  graphql, schema, database
Mithril Data
A rich data model library for Mithril javascript framework
Stars: ✭ 17 (-71.67%)
Mutual labels:  schema, database
Graphql Code Generator
A tool for generating code based on a GraphQL schema and GraphQL operations (query/mutation/subscription), with flexible support for custom plugins.
Stars: ✭ 7,993 (+13221.67%)
Mutual labels:  graphql, schema
Graphql Compose
Toolkit for generating complex GraphQL Schemas on Node.js
Stars: ✭ 947 (+1478.33%)
Mutual labels:  graphql, schema
Type Graphql
Create GraphQL schema and resolvers with TypeScript, using classes and decorators!
Stars: ✭ 6,864 (+11340%)
Mutual labels:  graphql, schema
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 7,712 (+12753.33%)
Mutual labels:  database, neo4j
Joi2gql
Conversion of Joi schemas into GraphQL data types
Stars: ✭ 11 (-81.67%)
Mutual labels:  graphql, schema
Eliasdb
EliasDB a graph-based database.
Stars: ✭ 611 (+918.33%)
Mutual labels:  graphql, database
Niklick
Rails Versioned API solution template for hipsters! (Ruby, Ruby on Rails, REST API, GraphQL, Docker, RSpec, Devise, Postgress DB)
Stars: ✭ 39 (-35%)
Mutual labels:  graphql, database
Rdbms To Graphql
A Java CLI program that generates a GraphQL schema from a JDBC data source.
Stars: ✭ 44 (-26.67%)
Mutual labels:  graphql, schema
Graphql Factory
A toolkit for building GraphQL
Stars: ✭ 44 (-26.67%)
Mutual labels:  graphql, schema
Neo4j Javascript Driver
Neo4j Bolt driver for JavaScript
Stars: ✭ 674 (+1023.33%)
Mutual labels:  database, neo4j
Pizzaql
🍕 Modern OSS Order Management System for Pizza Restaurants
Stars: ✭ 631 (+951.67%)
Mutual labels:  graphql, database
Eralchemy
Entity Relation Diagrams generation tool
Stars: ✭ 767 (+1178.33%)
Mutual labels:  schema, database
Coolqlcool
Nextjs server to query websites with GraphQL
Stars: ✭ 623 (+938.33%)
Mutual labels:  graphql, schema
Merge Graphql Schemas
A utility library to facilitate merging of modularized GraphQL schemas and resolver objects.
Stars: ✭ 935 (+1458.33%)
Mutual labels:  graphql, schema
Wertik Js
💪 A library that powers your app with GraphQL + Rest API
Stars: ✭ 56 (-6.67%)
Mutual labels:  graphql, database
Tuql
Automatically create a GraphQL server from a SQLite database or a SQL file
Stars: ✭ 526 (+776.67%)
Mutual labels:  graphql, schema
Neo4j Graphql Js
A GraphQL to Cypher query execution layer for Neo4j and JavaScript GraphQL implementations.
Stars: ✭ 585 (+875%)
Mutual labels:  graphql, neo4j
Fullstack Graphql
🌈 Simple Fullstack GraphQL Application. API built with Express + GraphQL + Sequelize (supports MySQL, Postgres, Sqlite and MSSQL). WebApp built with React + Redux to access the API. Written in ES6 using Babel + Webpack.
Stars: ✭ 955 (+1491.67%)
Mutual labels:  graphql, database

Neo4j - GraphQL

An optimized neo4j query resolver for Facebook's GraphQL.

GraphiQL endpoint demo

Prequisites

A neo4j graph database instance is required to provide the persistence layer. You can download this from the neo4j website http://neo4j.com/.

The methodology depends on having a schema defined in neo4j as follows:

Nodes with label class represent 'classes' which correspond to graphQL object types. Class nodes have property relationships with property nodes, and the combination of these properties defines the schema of the node. Class nodes can also have extends relationships with other class nodes, thereby inheriting properties from children. The resulting aggragate of properties translates to the graphQL object type.

The image below illustrates a possible structure, with the properties Name, YearTo and YearFrom inherited by all Person types, and Title, Collection, Medium etc inherited by all Picture types.

alt tag

Other relationships between classes such as Painting by Painter correspond to GraphQL List properties on the GraphQL object type.

Data nodes are then linked to schema nodes by way of instance_of relationships.

Method

Rather than having to requery the database at each node for a graphQL query, the resolver builds a single neo4j query by iterating through the graphQL request. The result is extremely performant, and enables complex queries to be generated with the user friendly graphQL syntax.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].