Neo4j Movies Example Application
Jersey JAX-RS Resource
Neo4j-Execution-Engine with Cypher
Frontend: jquery, bootstrap, d3.js
// JSON object for single movie with cast curl http://localhost:7474/movie/The%20Matrix // list of JSON objects for movie search results curl http://localhost:7474/movie/search?q=matrix // JSON object for whole graph viz (nodes, links - arrays) curl http://localhost:7474/movie/graph?limit=100
JAX-RS is a RESTful resource library in the JDK that allows you to specify classes as mapped resources and their methods as concrete endpoints for these resources.
Those methods can be passed parameters from the http request but also injected services from the underlying system - in our case
The endpoint method will then use the services with the parameters to execute its task and return a representation of the result data to be consumed by the client.
In our case we just get an instance of the
GraphDatabaseService to execute Cypher queries with parameters.
The results of the queries are converted into JSON and returned.
Build the project with
Then copy the generated jar-file in
target/neo4j-movies-3.0-SNAPSHOT.jar into the plugins directory of your server
To register the extension you have to edit the
/path/to/neo4j/conf/neo4j-server.properties and add a line like this:
which registers the package
example.extension.movies of our resource for the
/movie root context.
src/main/webapp/index.html page can be served with any web-server, e.g. by running
python -m SimpleHTTPServer 8080 in that directory.
Go to http://localhost:8080
You can search for movies by title or and click on any entry.