文档章节

Neo4j的Rest接口使用

九劫散仙
 九劫散仙
发布于 2016/11/02 18:50
字数 668
阅读 166
收藏 2

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/

© 著作权归作者所有

九劫散仙
粉丝 266
博文 175
码字总数 189625
作品 0
海淀
私信 提问
在 Python 中使用 Neo4j

一个访客在Nigel Small发布的文章,他感兴趣的领域包括Python、Javascript、PostgreSQL、Neo4j和Linux。他是一些开源项目的创始者,其中最有名的是py2neo,他是一个活跃的博客、演说者及Neo...

oschina
2013/07/24
4.8K
0
shenzhanwang/Spring-neo4j

Spring-neo4j 作为Nosql家族的一员,图存数据库在推荐系统,社交关系等领域拥有广泛应用。本项目基于Spring-data-neo4j,整合图存数据库Noe4j, 实现增删改查的功能。主要功能包括: 1.基于s...

shenzhanwang
2017/02/09
0
0
Spring Data Neo4j 2.0.0.M1 发布

Spring Data 的 Neo4j 模块 2.0 的第一个里程碑版发布了,该版本主要进行了内部的重构,切分成几个只模块,详细包括: spring-data-neo4j: Neo4jTemplate for easy, copying object-graph-ma...

红薯
2011/10/24
993
0
图形数据库Neo4j从入门到精通(含Neo4j+D3.js完整实战项目开发)

图形数据库Neo4j从入门到精通(含Neo4j+D3.js完整实战项目开发) 分享网盘地址——https://pan.baidu.com/s/1dFNFTZF 密码: hmge 图数据库是目前大数据领域最火热的方向,Neo4j则是图数据库中...

人气王子333
2017/11/08
0
0
实现用户推荐和资源二度推荐,没算法,纯体力活

需求: 1、一定要轻量级。最好只有一个Jar,依懒不要太多。 2、必须容易上手。有文档,有例子,还得是开源的,安装配制一步到位。 符合以上要求的,你想到了谁? Hadoop ? 在oschina和Googl...

黄平俊
2012/09/03
3.1K
10

没有更多内容

加载失败,请刷新页面

加载更多

gradle grovvy中的闭包

1. 无参数的闭包 //这b1就是一个闭包def b1={ println "hello b1"}//定义方法,包含闭包类型的参数def method1(Closure closure){closure()}//执行method1method1(b1) 执行结果 ...

edison_kwok
15分钟前
1
0
基于Spring Boot + Dubbo的全链路日志追踪(一)

一、 概要 当前公司后端整体架构为:Spring Boot + Dubbo。由于早期项目进度等原因,对日志这块没有统一的规范,基本上是每个项目自己管自己的日志。这也对后面的问题排查带来了很大的困难,...

明天以后
今天
6
0
安装fastdfs文件服务器步骤

1、安装libfastcommon wget https://github.com/happyfish100/libfastcommon/archive/master.zip 解压后安装 cd fastcommon-master ./make.sh ./make.sh install 2、安装 FastDFS,从sourcef......

lsjlgo
今天
3
0
MySQL 5.7 免安装版配置

下载地址:https://dev.mysql.com/downloads/mysql/ 安装步骤 1.下载zip解压到目录下 2.配置环境变量 新建系统变量:MYSQL_HOME,值:D:\DevelopmentTool\Mysql-5.7.26-winx64 修改path变量:...

华山猛男
今天
7
0
java map的遍历

//从大的角度可以分为两类Set<String> set=map.keySet();这里面还可以分为3类, 从set的角度来分 //Set<Map.Entry<String, String>> entery=map.entrySet(); public class Test { public sta......

南桥北木
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部