Working with Edges using REST
This is documentation to ArangoDB's REST interface for edges.
Edges are documents with two additional attributes: _from and _to. These attributes are mandatory and must contain the document-handle of the from and to vertices of an edge.
Use the general document REST api for create/read/update/delete.
Read in- or outbound edges
get edges
GET /_api/edges/{collection-id}
Path Parameters
- collection-id (required): The id of the collection.
Query Parameters
- vertex (required): The id of the start vertex.
- direction (optional): Selects in or out direction for edges. If not set, any edges are returned.
Returns an array of edges starting or ending in the vertex identified by vertex-handle.
Example:
Any direction
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"edges" : [
{
"_key" : "6",
"_id" : "edges/6",
"_from" : "vertices/2",
"_to" : "vertices/1",
"_rev" : "_VTxTB4m--D",
"$label" : "v2 -> v1"
},
{
"_key" : "7",
"_id" : "edges/7",
"_from" : "vertices/4",
"_to" : "vertices/1",
"_rev" : "_VTxTB4q---",
"$label" : "v4 -> v1"
},
{
"_key" : "5",
"_id" : "edges/5",
"_from" : "vertices/1",
"_to" : "vertices/3",
"_rev" : "_VTxTB4m--C",
"$label" : "v1 -> v3"
}
],
"error" : false,
"code" : 200,
"stats" : {
"scannedIndex" : 3,
"filtered" : 0
}
}
Example:
In edges
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"edges" : [
{
"_key" : "6",
"_id" : "edges/6",
"_from" : "vertices/2",
"_to" : "vertices/1",
"_rev" : "_VTxTB8y---",
"$label" : "v2 -> v1"
},
{
"_key" : "7",
"_id" : "edges/7",
"_from" : "vertices/4",
"_to" : "vertices/1",
"_rev" : "_VTxTB8y--_",
"$label" : "v4 -> v1"
}
],
"error" : false,
"code" : 200,
"stats" : {
"scannedIndex" : 2,
"filtered" : 0
}
}
Example:
Out edges
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"edges" : [
{
"_key" : "5",
"_id" : "edges/5",
"_from" : "vertices/1",
"_to" : "vertices/3",
"_rev" : "_VTxTCAW---",
"$label" : "v1 -> v3"
}
],
"error" : false,
"code" : 200,
"stats" : {
"scannedIndex" : 1,
"filtered" : 0
}
}
Return Codes
- 200: is returned if the edge collection was found and edges were retrieved.
- 400: is returned if the request contains invalid parameters.
- 404: is returned if the edge collection was not found.
Examples
Any direction
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"edges" : [
{
"_key" : "6",
"_id" : "edges/6",
"_from" : "vertices/2",
"_to" : "vertices/1",
"_rev" : "_VTxTB4m--D",
"$label" : "v2 -> v1"
},
{
"_key" : "7",
"_id" : "edges/7",
"_from" : "vertices/4",
"_to" : "vertices/1",
"_rev" : "_VTxTB4q---",
"$label" : "v4 -> v1"
},
{
"_key" : "5",
"_id" : "edges/5",
"_from" : "vertices/1",
"_to" : "vertices/3",
"_rev" : "_VTxTB4m--C",
"$label" : "v1 -> v3"
}
],
"error" : false,
"code" : 200,
"stats" : {
"scannedIndex" : 3,
"filtered" : 0
}
}
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
In edges
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"edges" : [
{
"_key" : "6",
"_id" : "edges/6",
"_from" : "vertices/2",
"_to" : "vertices/1",
"_rev" : "_VTxTB8y---",
"$label" : "v2 -> v1"
},
{
"_key" : "7",
"_id" : "edges/7",
"_from" : "vertices/4",
"_to" : "vertices/1",
"_rev" : "_VTxTB8y--_",
"$label" : "v4 -> v1"
}
],
"error" : false,
"code" : 200,
"stats" : {
"scannedIndex" : 2,
"filtered" : 0
}
}
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=in
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
Out edges
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff
{
"edges" : [
{
"_key" : "5",
"_id" : "edges/5",
"_from" : "vertices/1",
"_to" : "vertices/3",
"_rev" : "_VTxTCAW---",
"$label" : "v1 -> v3"
}
],
"error" : false,
"code" : 200,
"stats" : {
"scannedIndex" : 1,
"filtered" : 0
}
}
shell> curl --dump - http://localhost:8529/_api/edges/edges?vertex=vertices/1&direction=out
HTTP/1.1 200 OK
content-type: application/json; charset=utf-8
x-content-type-options: nosniff