博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Neo4j的Rest接口使用
阅读量:6950 次
发布时间:2019-06-27

本文共 2710 字,大约阅读时间需要 9 分钟。

hot3.png

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

X-Stream: true

默认想要访问neo4j服务,是需要授权认证的,第一次安装的 neo4j在登录()时是需要改密码的,默认是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/commitAccept: application/json; charset=UTF-8Content-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/36Accept: application/json; charset=UTF-8

响应的结果:

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

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

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

POST http://localhost:7474/db/data/transaction/commitAccept: application/json; charset=UTF-8Content-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://my.oschina.net/u/1027043/blog/779994

你可能感兴趣的文章