A very simple web application using Neo4j with Elixir, Phoenix and Neo4j.Sips(β).
These are the components of our Web Application:
- Application Type: An Elixir Phoenix web application
- Web framework: Phoenix
- Persistence Access: Neo4j.Sips(β)
- Database: Neo4j Server
- Frontend: jquery, bootstrap
- elixir and phoenix
- a local (or remote) Neo4j graph database server. This demo will connect to a local Neo4j Community Edition server instance available at:
http://localhost:7474
- the demo Movie Database. Open the Neo4j Browser.
Then install the Movies dataset with
:play movies
, click and hit the "Run" button.
$ git clone https://github.com/florinpatrascu/movies_elixir_phoenix
$ cd movies_elixir_phoenix
$ mix do deps.get, deps.compile
Edit the config/config.exs
and describe the Neo4j server endpoint, example:
config :neo4j_sips, Neo4j,
url: "http://localhost:7474",
pool_size: 5,
max_overflow: 2,
timeout: 30
If your server requires basic authentication, add this to your config file:
basic_auth: [username: "foo", password: "bar"]
or, if using a token, you can specify it like this:
token_auth: "bmVvNGo6O12kzdA=="
Sample configuration:
config :neo4j_sips, Neo4j,
url: "http://localhost:7474",
basic_auth: [username: "foo", password: "bar"],
pool_size: 5,
max_overflow: 2,
timeout: 30
more details and examples, here: Neo4j.Sips
Start the Phoenix server:
$ cd movies_elixir_phoenix
$ mix phoenix.server
Point your browser to: http://localhost:4000
, and you'll see something like this:
Oh, oh, and some endpoints, of course :)
# JSON object for single movie with cast
$ curl -H "Accept:application/json" \
http://localhost:4000/movies/findByTitle?title=The%20Matrix
# list of JSON objects for movie search results
$ curl -H "Accept:application/json" \
http://localhost:4000/movies/findByTitleContaining?title=matrix
# JSON object for the whole graph viz (nodes, links - arrays)
$ curl -H "Accept:application/json" \
http://localhost:4000/movies/graph?limit=100
- using most of the UI from: neo4j-examples/movies-java-spring-data-neo4j-4. Thank you!
MIT