Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';Restful api到Neo4j桌面的正确URL根是什么?_Neo4j - Fatal编程技术网

什么';Restful api到Neo4j桌面的正确URL根是什么?

什么';Restful api到Neo4j桌面的正确URL根是什么?,neo4j,Neo4j,我在本地计算机上安装了Neo4j Desktop,并创建了一个名为“testDB”的数据库。我可以在浏览器中查看它,但不能像上面那样从API中输出结果。错误消息是: URL='http://localhost:7474/db/data' headers = {'Accept': 'application/json;charset=UTF-8','Content-Type':'application/json'} data = { "statements" : [ {

我在本地计算机上安装了Neo4j Desktop,并创建了一个名为“testDB”的数据库。我可以在浏览器中查看它,但不能像上面那样从API中输出结果。错误消息是:

URL='http://localhost:7474/db/data'

headers = {'Accept': 'application/json;charset=UTF-8','Content-Type':'application/json'}
data = {
  "statements" : [
      {
        "statement" : "MATCH (n:product) RETURN n"
      } ]
}

r = requests.post(URL, headers = headers,json=data)
data = r.json()['results'][0]['data']
print(data)
当我独自运行时:

data = r.json()['results'][0]['data']
KeyError: 'results'
显示如下,与文档不同:

URL='http://localhost:7474'
headers = {'Accept': 'application/json'}
r = requests.get(URL, headers = headers)
if r.status_code == requests.codes.ok:
    print(r.json())
根据文件,输出应为:

{'data': 'http://localhost:7474/db/data/', 
 'management': 'http://localhost:7474/db/manage/', 
 'bolt': 'bolt://localhost:7687'
}

获取结果的正确URL是什么?我怀疑在我给出的URL中,我没有指定“testDB”。我可能需要做一些设置。原因是什么?

三个选项,具体取决于您是否使用Neo4j 4.0+——在所有情况下,您都需要发送授权标头

/db/data/transaction/commit
端点 在这里,您可以运行多个语句—不要担心URL中会显示“transaction”和“commit”,您也可以使用它进行查询:

{
  "bolt_direct": "bolt://localhost:7687",
  "bolt_routing": "neo4j://localhost:7687",
  "cluster": "http://localhost:7687/db/{databaseName}/cluster",
  "transaction": "http://localhost:7687/db/{databaseName}/tx",
  "neo4j_version": "4.0.0",
  "neo4j_edition": "enterprise"
}
如果您使用的是Neo4j 4.0.0,那么这将针对任何配置为“默认”数据库的对象

{
  "statements" : [
      {
        "statement" : "MATCH (n) RETURN n LIMIT 25"
      } 
  ]
}
/db/{databasename}/tx/commit
端点 e、 g.
/db/testdb/tx/commit

4.0中引入了在一台运行的服务器上支持多数据库。查询格式相同,但
transaction
已成为URL中的
tx
,并且
data
成为数据库的名称

{
  "statements" : [
      {
        "statement" : "MATCH (n) RETURN n LIMIT 25"
      } 
  ]
}
注意:多数据库支持与在桌面上创建多个图形不同。桌面仍然只运行一个数据库服务器,但如果将该服务器设置为Neo4j 4.0.0+实例,则可以在其中托管多个数据库,并在查询时在它们之间切换

/db/data/cypher
端点 ,但仍适用于<4.0.0的版本:

{
  "statements" : [
      {
        "statement" : "MATCH (n) RETURN n LIMIT 25"
      } 
  ]
}

您可以从链接的文档中找到每种情况下查询格式的更多信息。

三个选项,具体取决于您是否使用Neo4j 4.0+——在所有情况下,您都需要发送授权标头

/db/data/transaction/commit
端点 在这里,您可以运行多个语句—不要担心URL中会显示“transaction”和“commit”,您也可以使用它进行查询:

{
  "bolt_direct": "bolt://localhost:7687",
  "bolt_routing": "neo4j://localhost:7687",
  "cluster": "http://localhost:7687/db/{databaseName}/cluster",
  "transaction": "http://localhost:7687/db/{databaseName}/tx",
  "neo4j_version": "4.0.0",
  "neo4j_edition": "enterprise"
}
如果您使用的是Neo4j 4.0.0,那么这将针对任何配置为“默认”数据库的对象

{
  "statements" : [
      {
        "statement" : "MATCH (n) RETURN n LIMIT 25"
      } 
  ]
}
/db/{databasename}/tx/commit
端点 e、 g.
/db/testdb/tx/commit

4.0中引入了在一台运行的服务器上支持多数据库。查询格式相同,但
transaction
已成为URL中的
tx
,并且
data
成为数据库的名称

{
  "statements" : [
      {
        "statement" : "MATCH (n) RETURN n LIMIT 25"
      } 
  ]
}
注意:多数据库支持与在桌面上创建多个图形不同。桌面仍然只运行一个数据库服务器,但如果将该服务器设置为Neo4j 4.0.0+实例,则可以在其中托管多个数据库,并在查询时在它们之间切换

/db/data/cypher
端点 ,但仍适用于<4.0.0的版本:

{
  "statements" : [
      {
        "statement" : "MATCH (n) RETURN n LIMIT 25"
      } 
  ]
}

您可以从链接的文档中找到关于每种情况下的查询格式的更多信息。

因此我不需要指定数据库名称“testDB”。如果我创建了多个数据库呢?添加了一些说明-如果您使用的是Neo4j 4.0+,并且您在同一服务器下创建了多个数据库,那么URL需要包含数据库名称(否则,您只需点击“默认”数据库。不过,不要将其与Neo4j Desktop的图形概念混淆——您在桌面上一次只能运行一台服务器,因此除非您使用new
CREATE database
语句在服务器内创建新数据库,否则您可能需要第一个选项。因此,我不需要这样做o指定数据库名称“testDB”。如果我有多个数据库创建,该怎么办?添加了一些说明-如果您使用的是Neo4j 4.0+,并且在同一服务器下创建了多个数据库,那么URL需要包含数据库名称(否则,您只需点击“默认”数据库。不过,不要将其与Neo4j Desktop的图形概念混淆——使用Desktop一次只能运行一台服务器,因此除非您使用new
CREATE database
语句在服务器内创建新数据库,否则您可能需要第一个选项。