Below is similar to the way we do "discovery".  The results returned from
our REST-ful interface are hyperlinks in the case of HTML output, or a
collection of strings representing URI's in JSON and XML format.

My general feeling is that the primary use for "payloads" should be in POSTs
and in RPC-like services.  It is best if the specific semantics of what
function you intend to accomplish and what resource you intend to accomplish
it upon can be expressed in the URI itself.  In our REST-ful API, we provide
support for query parameters primarily as name/value pairs in the GET
request to provide filtering, searching, and other behaviors that enhance
the specificity of the request beyond what makes sense to include in the
URI.


-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Mattias Persson
Sent: Tuesday, March 23, 2010 2:53 PM
To: Neo user discussions
Subject: Re: [Neo] Indexing in the REST API

What I meant was that URIs shouldn't be handcrafted by the client, but
instead retrieved (discoverable) from the server.

And the original question was if it's ok to send a payload to a DELETE
request. In that case the intermediate index URI can be skipped in
favor of a URI template which is discoverable from the server (any
input here Jim?).

Your suggestion here is roughly the same as our first brainstorm as
well, so that's good so far :)

2010/3/23, Rick Bullotta <[email protected]>:
> Not sure I'm following the question, but let me take a guess:
>
> To find all "indexes":
>
> GET /index
>
> To find all "nodes in an index"
>
> GET /index/IndexName/*/*
>
> To find all values for a given key:
>
> GET /index/IndexName/key
>
> To find all nodes that contain any value for a given key:
>
> GET /index/IndexName/key/*
>
> To find all nodes that match a key/value pair
>
> GET /index/IndexName/key/value
>
> To add a new index
>
> PUT /index/NewIndexName
>
> To add a new entry:
>
> PUT /index/IndexName/key/value/<nodeURI>
>
> To delete an entry:
>
> DELETE /index/IndexName/key/value/<nodeURI>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
On
> Behalf Of Mattias Persson
> Sent: Tuesday, March 23, 2010 12:41 PM
> To: Neo user discussions
> Subject: Re: [Neo] Indexing in the REST API
>
> 2010/3/23 Rick Bullotta <[email protected]>
>
>> Ah, got it.  In that case, I would just use an extended URI instead of
>> passing a parameter, as in:
>>
>> If the index URI = /index/MyIndex
>>
>> ...and the node URI = /node/12134
>>
>> ...the compound URI to delete could be either:
>>
>> /index/MyIndex/node/12134
>>
>> ...or...
>>
>> /index/MyIndex/12134
>>
> And how would those URIs be discoverable?
>
>>
>> Rick
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]]
>> On
>> Behalf Of Mattias Persson
>> Sent: Tuesday, March 23, 2010 12:21 PM
>> To: Neo user discussions
>> Subject: Re: [Neo] Indexing in the REST API
>>
>> DELETE on a node URI means delete the Node.
>> DELETE on an index URI means remove a particular key-value pair from the
>> index for a Node.
>>
>> i.e. two different things
>>
>> 2010/3/23 Rick Bullotta <[email protected]>
>>
>> > Why not just process the DELETE on the index URI as a delete on the
node
>> > URI
>> > by doing the lookup/cross-reference on the server side?  I heard that
>> Neo4J
>> > is pretty good at tracking relationships like that. ;-)
>> >
>> >
>> > -----Original Message-----
>> > From: [email protected]
[mailto:[email protected]]
>> > On
>> > Behalf Of Mattias Persson
>> > Sent: Tuesday, March 23, 2010 12:15 PM
>> > To: Neo4j user discussions
>> > Subject: [Neo] Indexing in the REST API
>> >
>> > I'm adding indexing to the REST API now and we just come up with a
first
>> > solution where you POST a node URI to /index/{key}/{value}. What you
get
>> > back is an "index URI" which is kind of an intermediate URI so that you
>> can
>> > do GET on the index URI and get back a node representation, just as if
>> you
>> > would have done a GET /node/{id}. This intermediate index URI will also
>> > serve its purpose when you'd like to remove a node from an index
(DELETE
>> > "index URI").
>> >
>> > My question now is: can we get rid of the intermediate index URI by
>> > including a payload in such DELETE requests instead (passing along a
> node
>> > URI)? Is it good/bad to do something like that?
>> >
>> > --
>> > Mattias Persson, [[email protected]]
>> > Neo Technology, www.neotechnology.com
>> > _______________________________________________
>> > Neo mailing list
>> > [email protected]
>> > https://lists.neo4j.org/mailman/listinfo/user
>> >
>> > _______________________________________________
>> > Neo mailing list
>> > [email protected]
>> > https://lists.neo4j.org/mailman/listinfo/user
>> >
>>
>>
>>
>> --
>> Mattias Persson, [[email protected]]
>> Neo Technology, www.neotechnology.com
>> _______________________________________________
>> Neo mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>> _______________________________________________
>> Neo mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
>
> --
> Mattias Persson, [[email protected]]
> Neo Technology, www.neotechnology.com
> _______________________________________________
> Neo mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>
> _______________________________________________
> Neo mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
>


-- 
Mattias Persson, [[email protected]]
Neo Technology, www.neotechnology.com
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to