Neo4j的Rest接口使用

Neo4j的服务除了提供了基于java的客户端驱动包,同时也支持我们通过rest服务访问它,这一点非常便捷,意味着任何支持http访问的编程语言都可以使用cypher的rest来访问neo4j,同时支持http报文以streaming的形式的返回数据,以获得更好的性能,并大幅度节省内存,当然前提是需要我们在每个request请求中在header中加入:

X-Stream: true



默认想要访问neo4j服务,是需要授权认证的,第一次安装的
neo4j在登录(http://localhost:7474)时是需要改密码的,默认是neo4j:neo4j,改完密码之后,每次登录需要验证用户名和密码的。


#### 1,执行单个cpyher语句事务的http请求
查询neo4j节点总数的例子

curl http://192.168.10.31:7474/db/data/transaction/commit -u neo4j:dong -H "Content-Type: application/json" -d '{"statements" : [ { "statement" : "match (n) return count(n)" } ]}'

返回的结果如下:


{
"results": [
{
"columns": [
"count(n)"
],
"data": [
{
"row": [],
"meta": []
}
]
}
],
"errors": [ ]
}


注意上面的curl语句里面:

(1)需要加上用户名和密码,如果开启了权限认证

(2)要设置内容类型为json数据,同时采用了post请求

此外,如果不需要保持打开的事务横跨多个http请求,我们可以使用打开单个事务,然后执行cypher语句,最后提交仅仅单个http请求中。

#### 2,执行多个cpyher语句事务的http请求

我们在同一个http请求中也可以发送多个cpyher语句,响应的结果体中会包含每个cpyher语句结果。

一个例子如下:


POST http://localhost:7474/db/data/transaction/commit
Accept: application/json; charset=UTF-8
Content-Type: application/json


post请求体

{
"statements" : [ {
"statement" : "CREATE (n) RETURN id(n)"
}, {
"statement" : "CREATE (n {props}) RETURN n",
"parameters" : {
"props" : {
"name" : "My Node"
}
}
} ]
}

响应:

{
"results" : [ {
"columns" : [ "id(n)" ],
"data" : [ {
"row" : [ 56 ],
"meta" : [ null ]
} ]
}, {
"columns" : [ "n" ],
"data" : [ {
"row" : [ {
"name" : "My Node"
} ],
"meta" : [ {
"id" : 57,
"type" : "node",
"deleted" : false
} ]
} ]
} ],
"errors" : [ ]
}


#### 3,回滚打开的事务



DELETE http://localhost:7474/db/data/transaction/36
Accept: application/json; charset=UTF-8

响应的结果:

{
"results" : [ ],
"errors" : [ ]
}


注意上面是一个delete的rest请求。

#### 4,开启查询的系统统计信息



POST http://localhost:7474/db/data/transaction/commit
Accept: application/json; charset=UTF-8
Content-Type: application/json


请求体如下:

{
"statements" : [ {
"statement" : "CREATE (n) RETURN id(n)",
"includeStats" : true
} ]
}


请求结果如下:

{
"results" : [ {
"columns" : [ "id(n)" ],
"data" : [ {
"row" : [ 58 ],
"meta" : [ null ]
} ],
"stats" : {
"contains_updates" : true,
"nodes_created" : 1,
"nodes_deleted" : 0,
"properties_set" : 0,
"relationships_created" : 0,
"relationship_deleted" : 0,
"labels_added" : 0,
"labels_removed" : 0,
"indexes_added" : 0,
"indexes_removed" : 0,
"constraints_added" : 0,
"constraints_removed" : 0
}
} ],
"errors" : [ ]
}



总结:

neo4j服务暴露的http rest接口还是非常不错的,本篇文章简单的介绍了通过curl调用neo4j的方法,如果深入学习或者研究,可以参考官网文档https://neo4j.com/docs/developer-manual/current/http-api/
[b][color=green][size=large]
有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
技术债不能欠,健康债更不能欠, 求道之路,与君同行。
[/size][/color][/b]
[img]http://dl2.iteye.com/upload/attachment/0104/9948/3214000f-5633-3c17-a3d7-83ebda9aebff.jpg[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值