[Neo4j] Neo4j REST API and JAXB

Jim Webber jim at neotechnology.com
Thu Dec 30 17:15:28 CET 2010


Hi Christoper, Peter,

I wonder if this is some horrid coupling creeping in since AFAIK we also use Jackson for JSON production. Perhaps its own eccentricities are escaping our service boundary.

Anyone know if Jackson is/isn't very compliant?

Jim

On 29 Dec 2010, at 23:41, Peter Neubauer wrote:

> Very cool Christopher,
> Tis looks like a perfect way to test the server. As we are considering
> using more scale in at least our testing, we really should look into
> this for easing web testing to start with! I guess Andres and Andreas
> will be all over this after New Year :)
> 
> /Peter
> 
> On Wednesday, December 29, 2010, Christopher Schmidt
> <fakod666 at googlemail.com> wrote:
>> I am answering my own thread here, just in case someone is interested...
>> 
>> I solved my unmarshaling issue with Neo4j REST, JAXB and Jersey with using
>> the Jackson JSON processor (http://jackson.codehaus.org/) instead of Jersey
>> JSON.
>> 
>> This makes it easy to write a POPO representation of Neo4j's REST *objects*.
>> I implemented some of them (in Scala), see here:
>> https://github.com/FaKod/SJersey/tree/master/src/test/scala/org/sjersey/test/json/neo4jstuff
>> 
>> The usage is rather simple. I tested it with a *specs* test class here:
>> https://github.com/FaKod/SJersey/blob/master/src/test/scala/org/sjersey/test/AccessTest.scala
>> 
>> Although some idea files are checked in, it should be able to check it out
>> with maven2 (pom.xml).
>> 
>> I have written a blog post about this POC
>> here<http://blog.fakod.eu/2010/12/10/yet-another-trya-rest-client-with-jersey-and-scala/>,
>> as I said: Just in case someone is interested to use Scala, Jersey and the
>> Neo4j REST server ;)
>> 
>> Christopher
>> 
>> On Wed, Dec 8, 2010 at 4:09 PM, Christopher Schmidt <fakod666 at googlemail.com
>>> wrote:
>> 
>>> I have a little spare time ;-) and I try to create a/another "very smart"
>>> REST client DSL in Scala.
>>> 
>>> For testing and test data I am using the Neo4j Server from here:
>>> http://blog.neo4j.org/2010/04/neo4j-rest-server-part1-get-it-going.html
>>> 
>>> Client library is Jersey, JSON marshaling and unmarshaling lib is JAXB. The
>>> current client Scala code is:
>>> 
>>> rest {
>>>         implicit s =>
>>>         val traversalPath = "node/3/traverse/path".POST[JSONArray] <=
>>> PathRequest(order = "depth first", max_depth = 4, uniqueness = "node path")
>>>         println("Array length: " + traversalPath.length) // prints 2
>>>       }
>>> 
>>> The above JSONArray works fine, but if I use Java objects
>>> (as XmlRootElement) I get unmarshaling exceptions. It would be helpful If
>>> there is someone out there who already created some JAXB objects for
>>> Neo4j...
>>> 
>>> Christopher
>>> 
>>> 
>>> On Wed, Dec 8, 2010 at 3:56 PM, Peter Neubauer <
>>> peter.neubauer at neotechnology.com> wrote:
>>> 
>>>> Christopher,
>>>> are you trying to build your own server, or are you using Neo4j Server?
>>>> 
>>>> The REST API is now part of the server component, we are right now
>>>> defining a mechanism to mount your own server extensions without
>>>> breaking the REST hypermedia of the existing API.
>>>> 
>>>> What are you trying to do?
>>>> 
>>>> Cheers,
>>>> 
>>>> /peter neubauer
>>>> 
>>>> GTalk:      neubauer.peter
>>>> Skype       peter.neubauer
>>>> Phone       +46 704 106975
>>>> LinkedIn   http://www.linkedin.com/in/neubauer
>>>> Twitter      http://twitter.com/peterneubauer
>>>> 
>>>> http://www.neo4j.org               - Your high performance graph
>>>> database.
>>>> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
>>>> 
>>>> 
>>>> 
>>>> On Wed, Dec 8, 2010 at 3:52 PM, Christopher Schmidt
>>>> <fakod666 at googlemail.com> wrote:
>>>>> Hi all, is anyone using the REST interface and JAXB?
>>>>> 
>>>>> I have some problems with the traversal response of POST call to
>>>>> "/node/3/traverse/path" which returns:
>>>>> 
>>>>> [ {
>>>>>  "start" : "http://localhost:9999/node/3",
>>>>>  "nodes" : [ "http://localhost:9999/node/3", "
>>>> http://localhost:9999/node/1"
>>>>> ],
>>>>>  "length" : 1,
>>>>>  "relationships" : [ "http://localhost:9999/relationship/6" ],
>>>>>  "end" : "http://localhost:9999/node/1"
>>>>> }, {
>>>>>  "start" : "http://localhost:9999/node/3",
>>>>>  "nodes" : [ "http://localhost:9999/node/3", "
>>>> http://localhost:9999/node/2"
>>>>> ],
>>>>>  "length" : 1,
>>>>>  "relationships" : [ "http://localhost:9999/relationship/2" ],
>>>>>  "end" : "http://localhost:9999/node/2"
>>> --
>> Christopher
>> twitter: @fakod
>> blog: http://blog.fakod.eu
>> _______________________________________________
>> Neo4j mailing list
>> User at lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>> 
> _______________________________________________
> Neo4j mailing list
> User at lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user



More information about the User mailing list