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

Reply via email to