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