incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Evan Weaver <>
Subject Re: REST client interface
Date Wed, 08 Jul 2009 21:04:50 GMT
I was initially enthusiastic about a HTTP/JSON interface along vaguely
similar lines, but I've changed my mind. It still might make sense as
a stand-alone package that you could run on bastions in the cluster.

Per-language clients based on the Thrift (or someday Avro) bindings
seem like the way to go. No generated RPC will ever be idiomatic, and
REST has its own impedance mismatches.

Maybe can you describe you use case?


On Wed, Jul 8, 2009 at 1:33 PM, Michael Greene<> wrote:
> I don't think Thrift's HTTP transport would be ideal for a RESTful
> client interface.  It's more of a Thrift-over-HTTP than it is RESTful
> That said, I don't see the need for a RESTful public interface.  You
> would want to filter requests from the public anyway, and using pure
> Thrift internally is going to be more efficient on the backend.
> Michael
> On Wed, Jul 8, 2009 at 3:17 PM, Jonathan Ellis<> wrote:
>> How far away from giving us something like this is thrift's HTTPTransport?
>> On Wed, Jul 8, 2009 at 3:10 PM, Edward Ribeiro<> wrote:
>>> Hi folks,
>>> I've started to write a RESTful client interface. Anyone is working on this?
>>> Well, it uses jersey + jetty. Jetty loads quickly and has a relatively
>>> small footprint. And REST rocks! The downside is that both frameworks
>>> require an awful bunch of jars (8 jars or so). The small URLs that
>>> I've got working make sure that REST is the way to go when it comes to
>>> client apis.
>>> It's still an early draft, but next Tuesday I should be posting the
>>> first version as a JIRA issue, I hope. Below is a small list of things
>>> that are currently working (I've just started this afternoon):
>>> http://localhost:9999 --> retrieves info about the node
>>> http://localhost:9999/tables --> list the tables available
>>> http://localhost:9999/config --> echo the XML config file
>>> http://localhost:9999/tables/<Table Name> --> describe the table
>>> http://localhost:9999/tables/<Table Name>/<Column
>>> Family>/<Column>/<Key> --> retrieve row.
>>> The examples above will certainly change to suit the rest philosophy.
>>> I am not particularly fond of the last example... If anyone is
>>> interested, just drop me a mail and I'll send you the files, but I
>>> should open a JIRA issue next week. Any suggestion about URLs for
>>> operations is also welcome.
>>> Best regards,
>>> Edward

Evan Weaver

View raw message