This topic has been discussed several times. Unless you're working on this project to develop a prototype or for research purposes, please research the previous REST API in the mailing list archives. I know one of the issues was performance; at the very least using a REST API involves serializing and de-serializing which affects performance.
On Mon, Apr 13, 2015 at 4:49 PM, vaibhav thapliyal <[email protected]> wrote: > There is no specific intended user here. Basically I want to use accumulo in > the software as a service format. So that if someone who is not well versed > with accumulo doesn't need to worry about that. They can make use of the > rest api for crud operations. All in all I am aiming for a generic api. > > Thanks > Vaibhav > > On 14-Apr-2015 2:10 am, "David Medinets" <[email protected]> wrote: >> >> Vaibhav - who is the intended user for your rest api? >> >> On Mon, Apr 13, 2015 at 4:16 PM, vaibhav thapliyal >> <[email protected]> wrote: >> > Thank you josh for pointing out the key features. I would appreciate if >> > you >> > could elaborate your first point about the API being as stateless as >> > possible. >> > >> > Also I would like you to point out to any coding conventions followed by >> > accumulo dev team so that my code follows them. >> > >> > Thanks >> > Vaibhav >> > >> > On 14-Apr-2015 1:24 am, "Josh Elser" <[email protected]> wrote: >> >> >> >> Hi Vaibhav, >> >> >> >> This is something that comes up every now and again, but I don't think >> >> there's been any big interest internal to the project itself so far. >> >> That's >> >> not to say a REST API is without value: there just hasn't been anyone >> >> who >> >> stood up to own the feature. It's great that you want to do this and it >> >> would be a good way to get more involved. >> >> >> >> Some thoughts on the important bits: >> >> >> >> * As stateless of an API as possible >> >> - This is a little tricky as the server itself would need to hide >> >> this >> >> state in how it connects to Accumulo, as well as some notion of a >> >> "cursor" >> >> if a scanning API is supported. It may be easier to write an API around >> >> gets >> >> and puts as a first go and try to tackle scanning later as that gets >> >> real >> >> tricky, real fast. >> >> >> >> * User authentication >> >> - Having a good authentication story for clients to ensure that they >> >> receive only the data they should is tantamount. Lots of ways to go >> >> about >> >> this -- it would be good to identify the scope of the problem you want >> >> to >> >> solve then work towards that. >> >> >> >> * User authorization >> >> - Close together with authentication. The simple approach is to >> >> require >> >> Accumulo accounts for users connecting to the webservice. A more >> >> advanced >> >> approach (with more flexibility) is to build a delegation/impersonation >> >> service where the webserver would authenticate as some monolithic user >> >> and >> >> manage user authorizations on its own. This can be tricky to get >> >> correct, >> >> but is likely easier to manage resources this way. >> >> >> >> * Check out other systems' services before coding >> >> - This might seem a little odd, but I would take a look at what other >> >> projects like HBase or Cassandra have along this line. HBase has >> >> Stargate as >> >> a REST service (not sure how well it's maintained now) and I see a >> >> bunch of >> >> different projects for Cassandra. Getting an idea of what other have >> >> found >> >> useful in an API would be good and help make a usable API. You would >> >> likely >> >> be able to find some good discussions about what works well and what is >> >> problematic in these other projects. Thinking about those problems up >> >> front >> >> might help you avoid bigger problems down the road. >> >> >> >> In general, start small and get a nice, tested codebase. That will help >> >> in >> >> the long run. Keep us informed! This sounds great :D >> >> >> >> vaibhav thapliyal wrote: >> >>> >> >>> Dear all, >> >>> I am trying to build a Rest-api for accumulo. I would like to know the >> >>> minimum features that should be there in the rest api? >> >>> >> >>> Also are there any plans to make a rest api for accumulo by the >> >>> development team at accumulo itself? >> >>> Thanks and regards, >> >>> Vaibhav Thapliyal >> >>> >> >
