6.2. Nodes

6.2.1. Create Node
6.2.2. Create Node with properties
6.2.3. Get node
6.2.4. Get non-existent node
6.2.5. Delete node
6.2.6. Nodes with relationships can not be deleted

6.2.1. Create Node

Example request

  • POST http://0.0.0.0:7474/db/data/node
  • Accept: application/json

Example response

  • 201: Created
  • Content-Type: application/json
  • Location: http://0.0.0.0:7474/db/data/node/1
{
  "outgoing_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/out",
  "data" : {
  },
  "traverse" : "http://0.0.0.0:7474/db/data/node/1/traverse/{returnType}",
  "all_typed_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/all/{-list|&|types}",
  "property" : "http://0.0.0.0:7474/db/data/node/1/properties/{key}",
  "self" : "http://0.0.0.0:7474/db/data/node/1",
  "outgoing_typed_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/out/{-list|&|types}",
  "properties" : "http://0.0.0.0:7474/db/data/node/1/properties",
  "incoming_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/in",
  "extensions" : {
  },
  "create_relationship" : "http://0.0.0.0:7474/db/data/node/1/relationships",
  "paged_traverse" : "http://0.0.0.0:7474/db/data/node/1/paged/traverse/{returnType}{?pageSize,leaseTime}",
  "all_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/all",
  "incoming_typed_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/in/{-list|&|types}"
}

6.2.2. Create Node with properties

Example request

  • POST http://0.0.0.0:7474/db/data/node
  • Accept: application/json
  • Content-Type: application/json
{"foo" : "bar"}

Example response

  • 201: Created
  • Content-Length: 1072
  • Content-Type: application/json
  • Location: http://0.0.0.0:7474/db/data/node/2
{
  "outgoing_relationships" : "http://0.0.0.0:7474/db/data/node/2/relationships/out",
  "data" : {
    "foo" : "bar"
  },
  "traverse" : "http://0.0.0.0:7474/db/data/node/2/traverse/{returnType}",
  "all_typed_relationships" : "http://0.0.0.0:7474/db/data/node/2/relationships/all/{-list|&|types}",
  "property" : "http://0.0.0.0:7474/db/data/node/2/properties/{key}",
  "self" : "http://0.0.0.0:7474/db/data/node/2",
  "outgoing_typed_relationships" : "http://0.0.0.0:7474/db/data/node/2/relationships/out/{-list|&|types}",
  "properties" : "http://0.0.0.0:7474/db/data/node/2/properties",
  "incoming_relationships" : "http://0.0.0.0:7474/db/data/node/2/relationships/in",
  "extensions" : {
  },
  "create_relationship" : "http://0.0.0.0:7474/db/data/node/2/relationships",
  "paged_traverse" : "http://0.0.0.0:7474/db/data/node/2/paged/traverse/{returnType}{?pageSize,leaseTime}",
  "all_relationships" : "http://0.0.0.0:7474/db/data/node/2/relationships/all",
  "incoming_typed_relationships" : "http://0.0.0.0:7474/db/data/node/2/relationships/in/{-list|&|types}"
}

6.2.3. Get node

Note that the response contains URI/templates for the available operations for getting properties and relationships.

Example request

  • GET http://0.0.0.0:7474/db/data/node/1
  • Accept: application/json

Example response

  • 200: OK
  • Content-Type: application/json
{
  "outgoing_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/out",
  "data" : {
  },
  "traverse" : "http://0.0.0.0:7474/db/data/node/1/traverse/{returnType}",
  "all_typed_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/all/{-list|&|types}",
  "property" : "http://0.0.0.0:7474/db/data/node/1/properties/{key}",
  "self" : "http://0.0.0.0:7474/db/data/node/1",
  "outgoing_typed_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/out/{-list|&|types}",
  "properties" : "http://0.0.0.0:7474/db/data/node/1/properties",
  "incoming_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/in",
  "extensions" : {
  },
  "create_relationship" : "http://0.0.0.0:7474/db/data/node/1/relationships",
  "paged_traverse" : "http://0.0.0.0:7474/db/data/node/1/paged/traverse/{returnType}{?pageSize,leaseTime}",
  "all_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/all",
  "incoming_typed_relationships" : "http://0.0.0.0:7474/db/data/node/1/relationships/in/{-list|&|types}"
}

6.2.4. Get non-existent node

Example request

  • GET http://0.0.0.0:7474/db/data/node/600000
  • Accept: application/json

Example response

  • 404: Not Found
  • Content-Type: application/json
{
  "message" : "Cannot find node with id [600000] in database.",
  "exception" : "org.neo4j.server.rest.web.NodeNotFoundException: Cannot find node with id [600000] in database.",
  "stacktrace" : [ "org.neo4j.server.rest.web.DatabaseActions.node(DatabaseActions.java:101)", "org.neo4j.server.rest.web.DatabaseActions.getNode(DatabaseActions.java:205)", "org.neo4j.server.rest.web.RestfulGraphDatabase.getNode(RestfulGraphDatabase.java:192)", "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)", "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)", "java.lang.reflect.Method.invoke(Method.java:597)", "com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:184)", "com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)", "com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:276)", "com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)", "com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83)", "com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)", "com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71)", "com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1171)", "com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1103)", "com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053)", "com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043)", "com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:406)", "com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:477)", "com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662)", "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)", "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)", "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)", "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)", "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)", "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)", "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)", "org.mortbay.jetty.Server.handle(Server.java:326)", "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)", "org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)", "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)", "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)", "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)", "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)", "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)" ]
}

6.2.5. Delete node

Example request

  • DELETE http://0.0.0.0:7474/db/data/node/9
  • Accept: application/json

Example response

  • 204: No Content

6.2.6. Nodes with relationships can not be deleted

The relationships on a node has to be deleted before the node can be deleted.

Example request

  • DELETE http://0.0.0.0:7474/db/data/node/10
  • Accept: application/json

Example response

  • 409: Conflict
  • Content-Type: application/json
{
  "message" : "The node with id 10 cannot be deleted. Check that the node is orphaned before deletion.",
  "exception" : "org.neo4j.server.rest.web.OperationFailureException: The node with id 10 cannot be deleted. Check that the node is orphaned before deletion.",
  "stacktrace" : [ "org.neo4j.server.rest.web.DatabaseActions.deleteNode(DatabaseActions.java:226)", "org.neo4j.server.rest.web.RestfulGraphDatabase.deleteNode(RestfulGraphDatabase.java:206)", "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", "sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)", "sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)", "java.lang.reflect.Method.invoke(Method.java:597)", "com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:184)", "com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)", "com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:276)", "com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)", "com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83)", "com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)", "com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71)", "com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1171)", "com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1103)", "com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053)", "com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043)", "com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:406)", "com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:477)", "com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662)", "javax.servlet.http.HttpServlet.service(HttpServlet.java:820)", "org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)", "org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)", "org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)", "org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)", "org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)", "org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)", "org.mortbay.jetty.Server.handle(Server.java:326)", "org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)", "org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)", "org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)", "org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)", "org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)", "org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)", "org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)" ]
}