Coder Social home page Coder Social logo

michaeldgraham / neo4j-graphql-server Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 1.0 553 KB

A quick way to get started using neo4j-graphql-binding with Apollo Server.

Home Page: https://neo4j-graphql-server.gitbook.io/docs/

License: MIT License

JavaScript 100.00%

neo4j-graphql-server's Introduction

Introduction

It seems that GraphQL users could benefit from using graph databases and graph database users could benefit from using GraphQL. Thankfully, much has already been done to support this direction.

As part of the GRANDstack project, Neo4j has built a GraphQL-Endpoint extension named Neo4j-GraphQL, which provides an auto-generated API and custom database procedures for updating the schema and running operations. They have also built the neo4j-graphql-js package, which converts GraphQL requests directly to Cypher requests and is especially useful when the Neo4j-GraphQL extension is not available for some endpoint.

The Apollo Platform provides a variety of technologies that support working with GraphQL, including Apollo Server 2.0 and Apollo Link for composable networking.

Prisma has developed a collection of GraphQL resources. Their graphql-binding package makes it easier to use schema delegation. They have also built the Prisma API, which supports nested mutations.

Goal

A central goal of this project is to use Neo4j graph databases and Apollo server and networking resources to support progressively enhancing a GraphQL API that draws from current developments within the GraphQL community and further explores using GraphQL with graph databases. Given that Neo4j uses a property graph model, it should be interesting to develop features that take advantage of relationship properties.

Features

  • Augments your schema without needing to introspect your Neo4j-GraphQL HTTP endpoint and uses the โšก Bolt driver for all operations.
  • Allows using the @cypher directive from Neo4j-GraphQL for computed fields, query types and mutations.
  • Generates the same query types generated by Neo4j-GraphQL and delegates them to your Neo4j instance to be processed by the extension. Supports the same query arguments first, offset, orderBy, and filter, similar to those found in the Prisma Query API.
  • Supports nested create and connect mutations like those in the Prisma Mutation API (update, delete, etc. in development).
  • Generates resolvers for query and mutation types with a @cypher directive, as well as all auto-generated types.
  • Supports a @unique field directive for node property constraints in Neo4j in order to make node selection more robust.
  • Adds a id: ID! @unique field (if not provided) to any type with a @model directive and uses the cuid package to generate id field values for all auto-generated creation mutations.

Contact

I find the possibility of using GraphQL with Neo4j graph databases very interesting because I'm interested in the underlying activity of people using graph theoretic resources to build up complex descriptions of the world. I'm very happy to see a lot of activity with these technologies and would love to support the development communities in any way I can.

If you want to work together or need help with something, feel free to email me at [email protected] or reach out on LinkedIn or Twitter.

Resources

neo4j-graphql-server's People

Contributors

michaeldgraham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

neo4j-graphql-server's Issues

neo4j-graphql-server returning mock data

I just started using the package. I am using Grand Stack but I have problems with mutations and I saw this project but when I tried it it is giving me back mock data. Need help please

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.