Is there a connector in WSO2 to integrate with Neo4j Graph database?
The Connector should provide an ability to execute CQL statements and run basic operations, such as create, update, delete, and select nodes against a Neo4j Graph database instance.
The objective here is to expose REST API using dataservice in WSO2 EI by entering CQL for Neo4j Graph database similar to RDBMS datasource (Ex: MYSQL, Oracle..etc) where we enter SQL instead.
If we have to build a Custom Connector, any suggestions on the approach will be helpful.
Related
I am designing an API for a prototype project we have created that uses AgensGraph as the graph database. Now that we have a working graph database, we need an API (RESTful or GraphQL) that can be used to query the graph without directly using a cypher query. I am looking into using GraphQL. It appears that Neo4j has a GraphQL to Cypher resolver. Is there a similar way to create a GraphQL API for AgensGraph?
There is nothing that I'm aware but ...
There is a graphql plugin for postgres, and AgensGraph is based on PG
you can fork the neo4j-graphql-js project, and change the driver. This project is a Cypher generator for a GraphQL schema, but it uses Neo4j as a backend.
Otherwise try Neo4j :)
I know that neo4j database can be used both as embedded or server.
In neo4j documentation it says that REST API has an endpoint for Cypher queries, so if I issue Cypher query using spring-data-neo4j #Query annotated method, this query is sent to the database, executed on database side and then the result is sent back.
What about traversal API then? If I would submit traversal description using
findAllByTraversal(N startNode, org.neo4j.graphdb.traversal.TraversalDescription traversalDescription)
does it send all traversal description to the server and executes it in server context (so there it is only one HTTP request)?
Traversal API (package org.neo4j.graphdb.traversal) is only available via Java API. To expose your code using traversal API via REST, the recommended way is to wrap it into a unmanaged extension.
I have installed neo4j version 1.9.5 and tried some java sample to access / write data into graphdb, but for every action the existing graph db instance is created newly using below,
graphDb = new GraphDatabaseFactory().newEmbeddedDatabase("c:/movies/moviesdb"); so is it possible to access and execute cypher query through java on active Neo4j db without REST API concept.
Note : Consider Ne04j DB is already started and running
When running Neo4j as a server process, you communicate with your DB only via REST. The other usage model is embedded. Here you're application code controls the lifecycle of the DB by using new GraphDatabaseFactory().newEmbeddedDatabase(). These two modes are distinct.
Is there a way to interact with a neo4j graph db (running externally HA mode) via Rexter API. Neo4j's REST api is great but using Rexter makes my application completely agnostic of the remote graph db implementation stack. This will enable me to swap in other tinkerpop based graph db stacks like titan without affecting/changing my application code.
You should be able to use the Neo4jHaGraph Blueprints implementation:
https://github.com/tinkerpop/blueprints/wiki/Neo4jHa-Implementation
Here's some instructions for connecting using Rexster:
https://github.com/tinkerpop/rexster/wiki/Specific-Graph-Configurations#neo4j-high-availability-cluster
How to connect to neo4j server in spring via rmi? I found http://mvnrepository.com/artifact/org.neo4j/neo4j-remote-graphdb. Is it component neo4j-remote-graphdb supported?
You can connect with that library, which is also in http://github.com/neo4j/java-rest-binding
But you shouldn't use individual operations over the wire for higher performance operations, use Cypher instead (using RestGraphDatabase.query(query, params)) with Cypher Parameters.