Yes - URIs are opaque. But f.e. the Jersey Client API explicitly supports
adding query parameters to a WebResource object. So I think it would be a
good idea to support that. For me a URI (in a sense of a path) should define
a resource and should not be dependent of an internal state (what it's the
case if we append query parameter to an URI). Nevertheless I know that query
parameter do belong to an URI, so it's more a personal thing.

I have nothing against JSON. It's a really simple, non type safe way to
handle objects, but simplicity can be an advantage. It is fast and I can use
it with Jersey and with JavaScript very easy, all what I need is already
there.

I am very curios about how it will feel to get a complete graph from the
Neo4j Rest server using a sequence of REST calls with jQuery/native
JavaScript (the little project I am doing in my spare time)

Christopher

On Thu, Nov 18, 2010 at 3:42 PM, Rick Bullotta <
[email protected]> wrote:

> There is nothing fundamentally wrong with JSON (o.k. maybe a *few* things),
> but with the right structures, it or any format can be completely
> self-describing. I have found that including a bit of additional metadata
> in
> the content helps IMMENSELY for both loosely-coupled and tightly-coupled
> applications.  The more it self-describes the content, the better.
>
> Jim, now that you're on the Neo team, I would like to show you the
> (domain-specific) REST API we've put around Neo for our application
> sometime.  Might stimulate some thoughts on your work and provide us some
> valuable feedback as well.
>
> We were planning to do a demo for Peter & team sometime next week, so LMK
> if
> you're interested and your availability off-list.
>
> Cheers,
>
> Rick
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On
> Behalf Of Jim Webber
> Sent: Thursday, November 18, 2010 9:04 AM
> To: Neo4j user discussions
> Subject: [SPAM] Re: [Neo4j] REST Server API
>
> Hi Christopher,
>
> > Yes I know what you mean, the "{}" are part of the JAX-RS specification.
>
> They're part of the URI template specification. JAX-RS uses these URI
> templates.
>
> > The Neo4j Rest server uses HTTP and JSON thats true, but it violates IMHO
> > some of the REST principles. I think that a technical interface should
> > contain, if the content is a link, a "well formed" URI. I know that a
> String
> > like "GET /node/123/relationships/{dir}/{-list|&|types}" means that there
> > are optional parameter or something like this. Thats OK for a description
> in
> > a Wiki page but not in a returned JSON object.
>
> It's OK for both, but I agree that in general I prefer fully formed URIs.
> We'll need to tweak the response representations to include this.
>
> > The String "GET /node/123/relationships/out/KNOWS&LOVES" is used as a
> > query parameter. If it is used as a parameter for a query it should be a
> > URL-query parameter.
>
> Not necessarily. URIs are opaque, it's only because you're a smart human
> that you can infer something from a string like that, but a machine can't.
>
> > Using "POST /node/123/traverse/{returnType}" I can traverse though the
> > nodes, where returnType is the definition of the kind of objects I want
> to
> > have returned. In the basic REST sense POST is a Insert method where a
> newly
> > created ressource will be returned in the Location tag of a HTTP Header.
> For
> > me this POST is a GET as well, maybe with some query parameter.
>
> Agree with you on that - a traversal is a query and so should be a GET.
> There was a thread on that a while back if I remember correctly. The API
> will change in future iterations, this would be one of the changes I'd
> favour.
>
> > If you want to distinguish the returned Types, maybe it is a good idea to
> > use custom mime types for node, path and relation, if you want to use the
> > same URI for all.
>
> I don't like creating custom mime types, but at the same time I don't like
> JSON (because it's not a hypermedia format, it doesn't understand links).
> My
> preference would be to use Clojure data structures (once the Clojure guys
> have embedded the URI abstraction in the core), and create a standard media
> type based on Clojure - but I am a dreamer.
>
> In the meantime, I suspect we're stuck with this non-standard use of JSON.
>
> Jim
>
> PS - Bring on the controversial comments about the REST API, they're good
> possible requirements for us.
> PPS - I wrote a book about some of this REST stuff with Savas Parastatidis
> and Ian Robinson. See: http://restinpractice.com
>
>
> > And to be clear, I like this interface very much :-)
> >
> > Christopher
> >
> > On Thu, Nov 18, 2010 at 9:53 AM, Jim Webber <[email protected]>
> wrote:
> >
> >> Hi Christopher,
> >>
> >>> http://localhost:9999/node/1/relationships/in/{-list|&|types}"
> >>
> >> This is a URI template, inviting you to replace the {...} with values of
> >> your own. In this case it's giving you the opportunity to provide a list
> of
> >> ampersand separated types.
> >>
> >> Now I believe this URI template syntax is out of date compared to the
> >> current spec, but I'll have to validate that.
> >>
> >> Perhaps it's even worth thinking about designing this out of the REST
> API
> >> as we move forwards with Neo4j server. Hmmm....
> >>
> >> Jim
> >>
> >>
> >>
> >> _______________________________________________
> >> Neo4j mailing list
> >> [email protected]
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> >
> >
> >
> > --
> > Christopher
> > twitter: @fakod
> > blog: http://blog.fakod.eu
> > _______________________________________________
> > Neo4j mailing list
> > [email protected]
> > https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Christopher
twitter: @fakod
blog: http://blog.fakod.eu
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to