Return-Path: Delivered-To: apmail-hadoop-hbase-dev-archive@locus.apache.org Received: (qmail 46598 invoked from network); 22 Jan 2009 01:04:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Jan 2009 01:04:25 -0000 Received: (qmail 65383 invoked by uid 500); 22 Jan 2009 01:04:23 -0000 Delivered-To: apmail-hadoop-hbase-dev-archive@hadoop.apache.org Received: (qmail 65367 invoked by uid 500); 22 Jan 2009 01:04:23 -0000 Mailing-List: contact hbase-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hbase-dev@hadoop.apache.org Delivered-To: mailing list hbase-dev@hadoop.apache.org Received: (qmail 65349 invoked by uid 99); 22 Jan 2009 01:04:23 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Jan 2009 17:04:23 -0800 X-ASF-Spam-Status: No, hits=-1998.5 required=10.0 tests=ALL_TRUSTED,WEIRD_PORT X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Jan 2009 01:04:21 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id C1E48234C4AB for ; Wed, 21 Jan 2009 17:03:59 -0800 (PST) Message-ID: <216920656.1232586239793.JavaMail.jira@brutus> Date: Wed, 21 Jan 2009 17:03:59 -0800 (PST) From: "stack (JIRA)" To: hbase-dev@hadoop.apache.org Subject: [jira] Commented: (HBASE-1064) HBase REST xml/json improvements In-Reply-To: <2141440793.1229461004312.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HBASE-1064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12666018#action_12666018 ] stack commented on HBASE-1064: ------------------------------ Looks like REST still uses the xmlenc for XML outputting (Thats no prob., just thought it no longer used it). > HBase REST xml/json improvements > -------------------------------- > > Key: HBASE-1064 > URL: https://issues.apache.org/jira/browse/HBASE-1064 > Project: Hadoop HBase > Issue Type: Improvement > Components: rest > Reporter: Brian Beggs > Fix For: 0.20.0 > > Attachments: AgileJSON.jar, hbase-1064-patch-v2.patch, hbase-1064-patch-v3.patch, hbase-1064-patch-v4.patch, json2.jar, REST-Upgrade-Notes.txt, RESTPatch-pass1.patch > > > I've begun work on creating a REST based interface for HBase that can use both JSON and XML and would be extensible enough to add new formats down the road. I'm at a point with this where I would like to submit it for review and to get feedback as I continue to work towards new features. > Attached to this issue you will find the patch for the changes to this point along with a necessary jar file for the JSON serialization. Also below you will find my notes on how to use what is finished with the interface to this point. > This patch is based off of jira issues: > HBASE-814 and HBASE-815 > I am interested on gaining feedback on: > -what you guys think works > -what doesn't work for the project > -anything that may need to be added > -code style > -anything else... > Finished components: > -framework around parsing json/xml input > -framework around serialzing xml/json output > -changes to exception handing > -changes to the response object to better handle the serializing of output data > -table CRUD calls > -Full table fetching > -creating/fetching scanners > TODO: > -fix up the filtering with scanners > -row insert/delete operations > -individual row fetching > -cell fetching interface > -scanner use interface > Here are the wiki(ish) notes for what is done to this point: > REST Service for HBASE Notes: > GET / > -retrieves a list of all the tables with their meta data in HBase > curl -v -H "Accept: text/xml" -X GET -T - http://localhost:60050/ > curl -v -H "Accept: application/json" -X GET -T - http://localhost:60050/ > POST / > -Create a table > curl -H "Content-Type: text/xml" -H "Accept: text/xml" -v -X POST -T - http://localhost:60050/newTable > > test14 > > > subscription > 2 > NONE > false > true > > >
> Response: > 200success > JSON: > curl -H "Content-Type: application/json" -H "Accept: application/json" -v -X POST -T - http://localhost:60050/newTable > {"name":"test5", "column_families":[{ > "name":"columnfam1", > "bloomfilter":true, > "time_to_live":10, > "in_memory":false, > "max_versions":2, > "compression":"", > "max_value_length":50, > "block_cache_enabled":true > } > ]} > *NOTE* this is an enum defined in class HColumnDescriptor.CompressionType > GET /[table_name] > -returns all records for the table > curl -v -H "Accept: text/xml" -X GET -T - http://localhost:60050/tablename > curl -v -H "Accept: application/json" -X GET -T - http://localhost:60050/tablename > GET /[table_name] > -Parameter Action > metadata - returns the metadata for this table. > regions - returns the regions for this table > curl -v -H "Accept: text/xml" -X GET -T - http://localhost:60050/pricing1?action=metadata > Update Table > PUT /[table_name] > -updates a table > curl -v -H "Content-Type: text/xml" -H "Accept: text/xml" -X PUT -T - http://localhost:60050/pricing1 > > > subscription > 3 > NONE > false > true > > > subscription1 > 3 > NONE > false > true > > > curl -v -H "Content-Type: application/json" -H "Accept: application/json" -X PUT -T - http://localhost:60050/pricing1 > {"column_families":[{ > "name":"columnfam1", > "bloomfilter":true, > "time_to_live":10, > "in_memory":false, > "max_versions":2, > "compression":"", > "max_value_length":50, > "block_cache_enabled":true > }, > { > "name":"columnfam2", > "bloomfilter":true, > "time_to_live":10, > "in_memory":false, > "max_versions":2, > "compression":"", > "max_value_length":50, > "block_cache_enabled":true > } > ]} > Delete Table > curl -v -H "Content-Type: text/xml" -H "Accept: text/xml" -X DELETE -T - http://localhost:60050/TEST16 > creating a scanner > curl -v -H "Content-Type: application/json" -H "Accept: application/json" -X POST -T - http://localhost:60050/TEST16?action=newscanner > //TODO fix up the scanner filters. > response: > xml: > > > 2 > > > json: > {"id":1} > Using a scanner > curl -v -H "Content-Type: application/json" -H "Accept: application/json" -X POST -T - "http://localhost:60050/TEST16?action=scan&scannerId=&numrows=" > This would be my first submission to an open source project of this size, so please, give it to me rough. =) > Thanks. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.