Relationships are a first class citizen in the Neo4j REST API. They can be accessed either stand-alone or through the nodes they are attached to.
The general pattern to get relationships from a node is:
GET http://localhost:7474/db/data/node/123/relationships/{dir}/{-list|&|types}
Where dir
is one of all
, in
, out
and types
is an ampersand-separated list of types.
See the examples below for more information.
Example request
GET
http://localhost:7474/db/data/relationship/6
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
{ "start" : "http://localhost:7474/db/data/node/24", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/6", "property" : "http://localhost:7474/db/data/relationship/6/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/6/properties", "type" : "know", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/23" }
Documentation not available
Example request
POST
http://localhost:7474/db/data/node/94/relationships
Accept:
application/json
Content-Type:
application/json
{"to" : "http://localhost:7474/db/data/node/93", "type" : "LOVES", "data" : {"foo" : "bar"}}
Example response
201:
Created
Content-Type:
application/json
Location:
http://localhost:7474/db/data/relationship/32
{ "start" : "http://localhost:7474/db/data/node/94", "data" : { "foo" : "bar" }, "self" : "http://localhost:7474/db/data/relationship/32", "property" : "http://localhost:7474/db/data/relationship/32/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/32/properties", "type" : "LOVES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/93" }
Example request
POST
http://localhost:7474/db/data/node/92/relationships
Accept:
application/json
Content-Type:
application/json
{"to" : "http://localhost:7474/db/data/node/91", "type" : "LOVES", "data" : {"foo" : "bar"}}
Example response
201:
Created
Content-Type:
application/json
Location:
http://localhost:7474/db/data/relationship/30
{ "start" : "http://localhost:7474/db/data/node/92", "data" : { "foo" : "bar" }, "self" : "http://localhost:7474/db/data/relationship/30", "property" : "http://localhost:7474/db/data/relationship/30/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/30/properties", "type" : "LOVES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/91" }
Example request
DELETE
http://localhost:7474/db/data/relationship/11
Accept:
application/json
Example response
204:
No Content
Example request
GET
http://localhost:7474/db/data/relationship/15/properties
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
{ "since" : "1day", "cost" : "high" }
Example request
PUT
http://localhost:7474/db/data/relationship/14/properties
Accept:
application/json
Content-Type:
application/json
{ "happy" : false }
Example response
204:
No Content
Example request
GET
http://localhost:7474/db/data/relationship/12/properties/cost
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
"high"
Example request
PUT
http://localhost:7474/db/data/relationship/13/properties/cost
Accept:
application/json
Content-Type:
application/json
"deadly"
Example response
204:
No Content
Example request
GET
http://localhost:7474/db/data/node/134/relationships/all
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
[ { "start" : "http://localhost:7474/db/data/node/134", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/48", "property" : "http://localhost:7474/db/data/relationship/48/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/48/properties", "type" : "LIKES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/135" }, { "start" : "http://localhost:7474/db/data/node/136", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/49", "property" : "http://localhost:7474/db/data/relationship/49/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/49/properties", "type" : "LIKES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/134" }, { "start" : "http://localhost:7474/db/data/node/134", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/50", "property" : "http://localhost:7474/db/data/relationship/50/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/50/properties", "type" : "HATES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/137" } ]
Example request
GET
http://localhost:7474/db/data/node/139/relationships/in
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
[ { "start" : "http://localhost:7474/db/data/node/141", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/52", "property" : "http://localhost:7474/db/data/relationship/52/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/52/properties", "type" : "LIKES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/139" } ]
Example request
GET
http://localhost:7474/db/data/node/144/relationships/out
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
[ { "start" : "http://localhost:7474/db/data/node/144", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/54", "property" : "http://localhost:7474/db/data/relationship/54/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/54/properties", "type" : "LIKES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/145" }, { "start" : "http://localhost:7474/db/data/node/144", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/56", "property" : "http://localhost:7474/db/data/relationship/56/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/56/properties", "type" : "HATES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/147" } ]
<p/>
Note that the "&
" needs to be escaped for example when using
cURL from the terminal.
Example request
GET
http://localhost:7474/db/data/node/149/relationships/all/LIKES&HATES
Accept:
application/json
Example response
200:
OK
Content-Type:
application/json
[ { "start" : "http://localhost:7474/db/data/node/149", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/57", "property" : "http://localhost:7474/db/data/relationship/57/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/57/properties", "type" : "LIKES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/150" }, { "start" : "http://localhost:7474/db/data/node/151", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/58", "property" : "http://localhost:7474/db/data/relationship/58/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/58/properties", "type" : "LIKES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/149" }, { "start" : "http://localhost:7474/db/data/node/149", "data" : { }, "self" : "http://localhost:7474/db/data/relationship/59", "property" : "http://localhost:7474/db/data/relationship/59/properties/{key}", "properties" : "http://localhost:7474/db/data/relationship/59/properties", "type" : "HATES", "extensions" : { }, "end" : "http://localhost:7474/db/data/node/152" } ]
Copyright © 2012 Neo Technology