GRANDstack is combining GraphQL, React, Apollo, and the Neo4j Database into a modern stack for fast application development. You can find documentation, releases, and starters at https://grandstack.io. Before asking please make sure you use the latest release, no one else asked the question and you provided your GraphQL schema, - query, JS code and log outputs from GraphQL and Neo4j.
GRANDstack is combining GraphQL, React, Apollo, and the Neo4j Database into a modern stack for fast application development.
You can find documentation, blog, releases, and starter projects at https://grandstack.io.
Before asking please make sure you use the latest release, no one else asked the question and you provided your GraphQL schema, - query, JS code and log outputs from GraphQL and Neo4j.
The GRANDstack uses a query transpiler driven by the GraphQL schema (IDL, SDL) to generate Cypher queries for your GraphQL queries to run against Neo4j. Unlike most other GraphQL implementations, no n+1 backend queries are needed. A single Cypher query can serve arbitrarily complex GraphQL.
It works by augmenting your schema, adding additional top-level queries for your types. Also, mutations to create, update and delete types and relationships are added automatically. You control some of that with custom directives like @relationship
.
Additionally, computed queries, mutations and fields can be added by providing Cypher statements in @cypher
directives for them.
Here is an example schema:
type Movie {
title: String
year: Int
imdbRating: Float
genres: [Genre] @relation(name: "IN_GENRE", direction: "OUT")
}
type Genre {
name: String
movies: [Movie] @relation(name: "IN_GENRE", direction: "IN")
}