Шифровальный запрос через конечную точку REST: связь не создана

#rest #neo4j #cypher

#rest #neo4j #шифр

Вопрос:

Я использую сообщество Neo4j 2.0.1. Я пытаюсь вставить связь в график, отправив запрос через конечную точку REST.

Мой запрос на связь очень прост:

     MATCH (t1:Test { name : 'TEST_1' }), (t2:Test { name : 'TEST_2' }) CREATE (t1)-[:REL_TEST]->(t2)
  

Я называю это так в Powershell:

     $postParams  = "{ `"query`" : `"MATCH (t1:Test { name : {test1} }), (t2:Test { name : {test2} }) CREATE (t1)-[:REL_TEST]->(t2)`",`"params`" : { `"test1`" : `"TEST_1`", `"test2`" : `"TEST_2`" } }"

    Invoke-WebRequest -Uri http://localhost:7474/db/data/cypher -Method POST -Body $postParams -Headers @{"Accept"="application/json; charset=UTF-8";"Content-Type"="application/json"}
  

И я получил следующий ответ:

     StatusCode        : 200
    StatusDescription : OK
    Content           : {
                          "columns" : [ ],
                          "data" : [ ]
                        }
    RawContent        : HTTP/1.1 200 OK
                Access-Control-Allow-Origin: *
                Content-Length: 40
                Content-Type: application/json; charset=UTF-8
                Server: Jetty(9.0.z-SNAPSHOT)

                {
                  "columns" : [ ],
                  "data" : [ ]
                }
    Forms             : {}
    Headers           : {[Access-Control-Allow-Origin, *], [Content-Length, 40], [Content-Type, application/json; charset=UTF-8], [Server, Jetty(9.0.z-SNAPSHOT)]}
    Images            : {}
    InputFields       : {}
    Links             : {}
    ParsedHtml        : mshtml.HTMLDocumentClass
    RawContentLength  : 40
  

Но связь не создана. Если я затем введу тот же запрос в пользовательском интерфейсе браузера, он сработает.
Я не понимаю, что я делаю неправильно, тем более, что запрос работает в браузере, а процедура вызова REST работает, например, для вставки узла.

Ответ №1:

Вы уверены, что ваш запрос не работает. Вы не возвращаете никаких данных, поэтому возможно, что они создаются без вашего ведома.

Вы могли бы попробовать что-то вроде этого

 MATCH (t1:Test{name: {test1}}), (t2:Test{name: {test2}})
CREATE (t1)-[rel:REL_TEST]->(t2)
RETURN rel
  

Если вы не получаете rel в своем ответе, это означает, что rel не был создан, вероятно, потому, что по крайней мере один из MATCH es потерпел неудачу. Попробуйте вернуть t1 , t2 а также посмотреть, работают ли они так, как ожидалось.

Комментарии:

1. Хорошо, кажется, я неправильно использовал какое-то имя класса узла: (Ваш совет искать напрямую с помощью запроса REST, если мои узлы были доступны, был ценным, чтобы найти это. Большое вам спасибо!