Neo4j REST API - 创建唯一节点

时间:2013-05-04 15:29:36

标签: rest neo4j

我正在尝试使用REST API创建一个唯一的节点。但是,我收到关于要求密钥'uri'的错误(见下文)。根据记录的示例,此调用创建并索引新创建的节点...因此不应该有'uri'参数。我的请求和回复如下。我做错了什么?

请求:

http://www.somemachine.com:7474/db/data/index/node/idxHost?unique=get_or_create

{
    "key": "name",
    "value": "HOST",
    "properties": {
        "type": "company",
        "name": "HOST",
        "sequence": 1
    }
}

响应:

状态:400,身体:

{
  "message" : "Missing required key: \"uri\"",
  "exception" : "BadInputException",
  "fullname" : "org.neo4j.server.rest.repr.BadInputException",
  "stacktrace" : [ "org.neo4j.server.rest.repr.formats.JsonFormat.readMap(JsonFormat.java:92)", "org.neo4j.server.rest.web.RestfulGraphDatabase.addToNodeIndex(RestfulGraphDatabase.java:802)", "java.lang.reflect.Method.invoke(Method.java:601)" ],
  "cause" : {
    "message" : "Missing required key: \"uri\"",
    "exception" : "BadInputException",
    "stacktrace" : [ "org.neo4j.server.rest.repr.DefaultFormat.validateKeys(DefaultFormat.java:153)", "org.neo4j.server.rest.repr.formats.JsonFormat.readMap(JsonFormat.java:88)", "org.neo4j.server.rest.web.RestfulGraphDatabase.addToNodeIndex(RestfulGraphDatabase.java:802)", "java.lang.reflect.Method.invoke(Method.java:601)" ],
    "fullname" : "org.neo4j.server.rest.repr.BadInputException"
  }
}

使用curl c:\ apps \ curl \ curl-7.28.1-win64-nossl> curl -i -H“Accept:application / json”-H“Content-Type:application / json”-X POST -d'{“key” : “名称”, “值”: “HOST”,“PROPERT ies“:{”type“:”company“,”name“:”HOST“,”sequence“:1}}'http://www.somemachine.com:7474/db/data/index/node/idxHost?unique=get_or_create HTTP / 1.1 400错误请求 内容长度:489 内容编码:UTF-8 Content-Type:application / json Access-Control-Allow-Origin:* 服务器:Jetty(6.1.25)

{   “message”:“意外的字符('''(代码39)):预期在[来源:java。]的有效值(数字,字符串,数组,对象,'真'','假'或'空')\ n。 io.Str ingReader @ 1e70f68; line:1,column:2]“,   “exception”:“BadInputException”,   “stacktrace”:[“org.neo4j.server.rest.repr.formats.JsonFormat.readMap(JsonFormat.java:92)”,“org.neo4j.server.rest.web.RestfulGraphDatabase.addToNodeIndex(R estfulGraphDatabase.java:776)“,”java.lang.reflect.Method.invoke(未知来源)“] }

1 个答案:

答案 0 :(得分:0)

根据文档,在1.8中,url以'?unique'结尾,而在1.9中是'?uniqueness = get_or_create'

我认为这可能会导致您的错误。

参见1.8:http://docs.neo4j.org/chunked/stable/rest-api-unique-indexes.html#rest-api-add-a-node-to-an-index-unless-a-node-already-exists-for-the-given-mapping

和1.9:http://docs.neo4j.org/chunked/milestone/rest-api-unique-indexes.html