2013-05-04 3 views
1

Я пытаюсь использовать REST API для создания уникального узла. Тем не менее, я получаю сообщение об ошибке, требующей ключа «uri» (см. Ниже). На основе документированных примеров этот вызов создает и индексирует вновь созданный узел ... поэтому не должно быть параметра «uri». Мой запрос и ответ ниже. Что я делаю не так?Neo4j REST API - создать уникальный узел

ЗАПРОС:

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": "name", "value": "HOST", "propert ": {"type": "company", "name": "HOST", "sequence": 1}}' http://www.somemachine.com:7474/db/data/index/node/idxHost?unique=get_or_create HTTP/1.1 400 Bad Request Content-Length: 489 Content-Encoding: UTF-8 Content-Type: применение/JSON Access-Control-Allow-Origin: * сервер: Jetty (6.1.25)

{ "message": "Неожиданный символ ('' '(код 39)): ожидается допустимое значение (число, строка, массив, объект,' истина ',' false 'или' null ') \ n в [Источник: java.io.Str ingReader @ 1e70f68; строка: 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 (Unknown Source)"] }

+0

В какой версии 'neo4j' вы используете? – Nicholas

+0

Возможно, это связано с неправильным форматированием вашего запроса с помощью библиотеки lib (если она есть). Вы пробовали с завитом? – RaduK

+0

Версия 1.8.2 – user2350063

ответ

0

Согласно док, в 1.8 URL-адрес заканчивается, тогда как в версии 1.9 является

Я думаю, что это может привести к вашей ошибке

см 1.8 'уникальным?' 'уникальность = get_or_create?:. 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

Смежные вопросы