Hi Paul,

in this endpoint data is streamed from and to the server.

So that the headers for the response are sent immediately, before any query is 
executed. Then the query results are pulled through lazily and sent to the 
client.

At any stage errors can happen, parsing, starting the execution or returning 
results (imagine division by zero in the last row of your results).
Also this endpoint can consume multiple statements, so the first x might be 
successful and already stream back data to the client and only the last one 
might fail. Which is the reported in the errors block.

That's why the request doesn't fail as such but errors are returned. As we 
never know if there will be any errors when processing the statements and 
streaming back results or not, so we cannot hold off sending the headers to the 
client
before the queries are actually parsed, run and fetched through.


HTH

Michael

Am 24.12.2013 um 12:27 schrieb Paul Grenyer <[email protected]>:

> Hi
> 
> This is my first post and a continuation of a discussion with the
> @neo4j account on twitter.
> 
> Having read this web page:
> 
> http://docs.neo4j.org/chunked/milestone/rest-api-transactional.html
> 
> I constructed the body of a REST POST to
> http://<myserver>/db/data/transaction/<tx> like this:
> 
> {
>    "statements":[{
>        "statement":"MATCH (u:User{username:{username}}), (r:Role
> name:{rolename}})\nCREATE(u)-[:HAS_ROLE]-\u003e(r)",
>          "parameters":{
>            "props":{
>                "username":"user1","rolename":"ROLE_REST_USER"
>            }
>        }
>    }]
> }
> 
> I received no error code back from Neo4j by way of the POST. When my
> update wasn't applied to the database I had to look at the response
> message to see the problem:
> 
> {
>    "commit":"http://localhost:7474/db/data/transaction/32/commit";,
>    "results":[],
>    "transaction":{"expires":"Tue,24 Dec 2013 11:16:17+0000"},
>    "errors":[{
>        "code":"Neo.ClientError.Statement.ParameterMissing",
>        "message":"Expected a parameter named username"
>        }]
> }
> 
> With a little bit of guess work I figured that the 'props' element
> under 'parameters' wasn't required, rejigged the JSON and it worked.
> 
> However, I'm left thinking that:
> 
> 1. The documentation at the above link may need correcting (or perhaps
> I'm just being dumb and missing something).
> 2. The POST should have returned an error code.
> 
> What do you guys think?
> 
> 
> -- 
> Thanks
> Paul
> 
> Paul Grenyer
> e: [email protected]
> b: paulgrenyer.blogspot.com
> t: pjgrenyer
> 
> Have you thought what Naked Element could do for you? 
> http://nakedelement.co.uk/
> 
> It's time to get technical: http://norfolkdevelopers.com
> 
> Norfolk Developers Conference is coming: http://nordevcon.com/
> 
> Enjoyed working with me? Something I could work on? Give me honest,
> anonymous feedback: https://www.get3sixty.com/:wehop
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to