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/30
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
{
"extensions" : {
},
"start" : "http://localhost:7474/db/data/node/139",
"property" : "http://localhost:7474/db/data/relationship/30/properties/{key}",
"self" : "http://localhost:7474/db/data/relationship/30",
"properties" : "http://localhost:7474/db/data/relationship/30/properties",
"type" : "know",
"end" : "http://localhost:7474/db/data/node/138",
"data" : {
}
}Upon successful creation of a relationship, the new relationship is returned.
Example request
POST http://localhost:7474/db/data/node/1/relationships
Accept: application/json; charset=UTF-8
Content-Type: application/json
{
"to" : "http://localhost:7474/db/data/node/0",
"type" : "LOVES"
}Example response
201: Created
Content-Type: application/json; charset=UTF-8
Location: http://localhost:7474/db/data/relationship/1
{
"extensions" : {
},
"start" : "http://localhost:7474/db/data/node/1",
"property" : "http://localhost:7474/db/data/relationship/1/properties/{key}",
"self" : "http://localhost:7474/db/data/relationship/1",
"properties" : "http://localhost:7474/db/data/relationship/1/properties",
"type" : "LOVES",
"end" : "http://localhost:7474/db/data/node/0",
"data" : {
}
}Upon successful creation of a relationship, the new relationship is returned.
Example request
POST http://localhost:7474/db/data/node/11/relationships
Accept: application/json; charset=UTF-8
Content-Type: application/json
{
"to" : "http://localhost:7474/db/data/node/10",
"type" : "LOVES",
"data" : {
"foo" : "bar"
}
}Example response
201: Created
Content-Type: application/json; charset=UTF-8
Location: http://localhost:7474/db/data/relationship/8
{
"extensions" : {
},
"start" : "http://localhost:7474/db/data/node/11",
"property" : "http://localhost:7474/db/data/relationship/8/properties/{key}",
"self" : "http://localhost:7474/db/data/relationship/8",
"properties" : "http://localhost:7474/db/data/relationship/8/properties",
"type" : "LOVES",
"end" : "http://localhost:7474/db/data/node/10",
"data" : {
"foo" : "bar"
}
}Example request
DELETE http://localhost:7474/db/data/relationship/23
Accept: application/json; charset=UTF-8
Example response
204: No Content
Example request
GET http://localhost:7474/db/data/relationship/26/properties
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
{
"cost" : "high",
"since" : "1day"
}Example request
PUT http://localhost:7474/db/data/relationship/31/properties
Accept: application/json; charset=UTF-8
Content-Type: application/json
{
"happy" : false
}Example response
204: No Content
Example request
GET http://localhost:7474/db/data/relationship/27/properties/cost
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
"high"
Example request
PUT http://localhost:7474/db/data/relationship/25/properties/cost
Accept: application/json; charset=UTF-8
Content-Type: application/json
"deadly"
Example response
204: No Content
Example request
GET http://localhost:7474/db/data/node/299/relationships/all
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
[ {
"start" : "http://localhost:7474/db/data/node/299",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/205",
"property" : "http://localhost:7474/db/data/relationship/205/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/205/properties",
"type" : "LIKES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/300"
}, {
"start" : "http://localhost:7474/db/data/node/301",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/206",
"property" : "http://localhost:7474/db/data/relationship/206/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/206/properties",
"type" : "LIKES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/299"
}, {
"start" : "http://localhost:7474/db/data/node/299",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/207",
"property" : "http://localhost:7474/db/data/relationship/207/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/207/properties",
"type" : "HATES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/302"
} ]Example request
GET http://localhost:7474/db/data/node/318/relationships/in
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
[ {
"start" : "http://localhost:7474/db/data/node/320",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/217",
"property" : "http://localhost:7474/db/data/relationship/217/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/217/properties",
"type" : "LIKES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/318"
} ]Example request
GET http://localhost:7474/db/data/node/343/relationships/out
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
[ {
"start" : "http://localhost:7474/db/data/node/343",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/231",
"property" : "http://localhost:7474/db/data/relationship/231/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/231/properties",
"type" : "LIKES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/344"
}, {
"start" : "http://localhost:7474/db/data/node/343",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/233",
"property" : "http://localhost:7474/db/data/relationship/233/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/233/properties",
"type" : "HATES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/346"
} ]Note that the "&" needs to be encoded like "%26" for example when
using cURL from the terminal.
Example request
GET http://localhost:7474/db/data/node/274/relationships/all/LIKES&HATES
Accept: application/json; charset=UTF-8
Example response
200: OK
Content-Type: application/json; charset=UTF-8
[ {
"start" : "http://localhost:7474/db/data/node/274",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/190",
"property" : "http://localhost:7474/db/data/relationship/190/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/190/properties",
"type" : "LIKES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/275"
}, {
"start" : "http://localhost:7474/db/data/node/276",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/191",
"property" : "http://localhost:7474/db/data/relationship/191/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/191/properties",
"type" : "LIKES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/274"
}, {
"start" : "http://localhost:7474/db/data/node/274",
"data" : {
},
"self" : "http://localhost:7474/db/data/relationship/192",
"property" : "http://localhost:7474/db/data/relationship/192/properties/{key}",
"properties" : "http://localhost:7474/db/data/relationship/192/properties",
"type" : "HATES",
"extensions" : {
},
"end" : "http://localhost:7474/db/data/node/277"
} ]Copyright © 2013 Neo Technology