Return-Path: X-Original-To: apmail-accumulo-user-archive@www.apache.org Delivered-To: apmail-accumulo-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 890FB17348 for ; Tue, 14 Apr 2015 00:12:54 +0000 (UTC) Received: (qmail 37115 invoked by uid 500); 14 Apr 2015 00:12:54 -0000 Delivered-To: apmail-accumulo-user-archive@accumulo.apache.org Received: (qmail 37058 invoked by uid 500); 14 Apr 2015 00:12:54 -0000 Mailing-List: contact user-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@accumulo.apache.org Delivered-To: mailing list user@accumulo.apache.org Received: (qmail 37046 invoked by uid 99); 14 Apr 2015 00:12:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Apr 2015 00:12:54 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of josh.elser@gmail.com designates 209.85.220.175 as permitted sender) Received: from [209.85.220.175] (HELO mail-qk0-f175.google.com) (209.85.220.175) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Apr 2015 00:12:47 +0000 Received: by qkgx75 with SMTP id x75so205409809qkg.1 for ; Mon, 13 Apr 2015 17:12:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=eQ2tb3J+u9ZQLUOBmT2emOI43zVPIOMeJIZR1cnku4A=; b=t+WFbWNlV0WpAw7+rsLnk6MbL2YU4V+z7LCioKHOm6d+4ZTP8+SZiD/GmDX54PX5W5 OLFKg0PuZj60+X8QRUuzgG37ht8toPIz6w0ogtwEBaeun6zOcr3KKspfxR7PtZNF1r7F HwRQZa/L/BJflEoyhbopmGgMHrZ0kMeVAuGPI1LhpuoxBFDAN6JYuj3zVcpnKvEi2XCt tj2DWxW8pVaqNF1ScF51Z/9x/d9s2PzfBdHc7keIyInsmNclzZtcdIgkOmN4siWG2GE1 xWUoeQ01iJEHrYWWlpcH7NRTL6sK/T98zSCjUVm5WQQPyndIJGHfeDfg9Ypa2mV9wFEA t43Q== X-Received: by 10.140.192.83 with SMTP id n80mr12894948qha.1.1428970345663; Mon, 13 Apr 2015 17:12:25 -0700 (PDT) Received: from hw10447.local (pool-72-81-135-153.bltmmd.fios.verizon.net. [72.81.135.153]) by mx.google.com with ESMTPSA id 132sm7055342qhf.17.2015.04.13.17.12.25 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 13 Apr 2015 17:12:25 -0700 (PDT) Message-ID: <552C5B67.8010907@gmail.com> Date: Mon, 13 Apr 2015 20:12:23 -0400 From: Josh Elser User-Agent: Postbox 3.0.11 (Macintosh/20140602) MIME-Version: 1.0 To: user@accumulo.apache.org Subject: Re: Features that should he part of a rest client for accumulo References: <552C1ED5.4010606@gmail.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org (forgot to add this last time) I think CRUD is a good target to aim at. A lot of the serialization concerns come around sending egregious amounts of data through a single webserver (big accumulo nodes, itty-bitty webserver). An API that doesn't support many Key-Value pairs returned from a single call will simplify things greatly. vaibhav thapliyal 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" > wrote: > > Vaibhav - who is the intended user for your rest api? > > On Mon, Apr 13, 2015 at 4:16 PM, vaibhav thapliyal > > 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" > 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 > >>> > > >