2010/11/19 Christopher Schmidt <fakod...@googlemail.com>

> 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.
>

Yes, I totally agree that it'd be very nice to have them as query
parameters. It just makes sense to do that.


>
> 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 <
> rick.bullo...@burningskysoftware.com> 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: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org]
> > 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 <j...@neotechnology.com>
> > wrote:
> > >
> > >> Hi Christopher,
> > >>
> > >>> http://localhost:9999/node/1/relationships/in/{-list|&|types}<http://localhost:9999/node/1/relationships/in/%7B-list%7C&%7Ctypes%7D>
> "
> > >>
> > >> 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
> > >> User@lists.neo4j.org
> > >> https://lists.neo4j.org/mailman/listinfo/user
> > >>
> > >
> > >
> > >
> > > --
> > > Christopher
> > > twitter: @fakod
> > > blog: http://blog.fakod.eu
> > > _______________________________________________
> > > Neo4j mailing list
> > > User@lists.neo4j.org
> > > https://lists.neo4j.org/mailman/listinfo/user
> >
> > _______________________________________________
> > Neo4j mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
> >
> > _______________________________________________
> > Neo4j mailing list
> > User@lists.neo4j.org
> > https://lists.neo4j.org/mailman/listinfo/user
> >
>
>
>
> --
> Christopher
> twitter: @fakod
> blog: http://blog.fakod.eu
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to