movies-golang-bolt icon indicating copy to clipboard operation
movies-golang-bolt copied to clipboard

Neo4j Movies Example application with built-in HTTP server using the neo4j-go-driver

== Neo4j Movies Application: Quick Start

image::https://github.com/neo4j-examples/movies-golang-bolt/workflows/Go/badge.svg[CI]

== The Stack

These are the components of our Web Application:

  • Application Type: Go-Web Application
  • Web framework: https://golang.org/pkg/net/http/[Built-in HTTP server]
  • Neo4j Database Connector: https://github.com/neo4j/neo4j-go-driver[Neo4j Go Driver] for Cypher https://neo4j.com/developer/go[Docs]
  • Database: Neo4j-Server (4.4 or later) with multi-database
  • Frontend: jquery, bootstrap, https://d3js.org/[d3.js]

Provision a database quickly with https://sandbox.neo4j.com/?usecase=movies[Neo4j Sandbox] or https://neo4j.com/cloud/aura/[Neo4j Aura].

== Endpoints:

Get Movie


// JSON object for single movie with cast curl http://BASE_URL/movie/The%20Matrix

// list of JSON objects for movie search results curl http://BASE_URL/search?q=matrix

// JSON object for whole graph viz (nodes, links - arrays) curl http://BASE_URL/graph

== Setup

This uses the Go standard library HTTP server, along with the official Neo4j Go driver.

== Run:

Start this application with:

[source,shell]

go run server.go

Go to http://localhost:8080

You can search for movies by title or and click on any entry.

== Configuration options

[%header,cols=2*] |=== |Environment variable name |Default value (or N/A)

|PORT |8080

|NEO4J_URI |neo4j+s://demo.neo4jlabs.com

|NEO4J_USER |movies

|NEO4J_PASSWORD |movies

|NEO4J_DATABASE |movies |===

To run the database locally as well, start your local Neo4j Server (https://neo4j.com/download[Download & Install]), open Neo4j Browser. Then install the Movies data-set with :play movies, click the statement, and hit the triangular "Run" button.

Then, override the relevant environment variables above.