Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Lucene-hadoop Wiki" for 
change notification.

The following page has been changed by stack:
http://wiki.apache.org/lucene-hadoop/Hbase/HbaseRest

------------------------------------------------------------------------------
              Multipart/related:  The client is expecting raw binary data, but 
organized into a 
                                  multipart response. The client must be 
prepared to parse the 
                                  column values out of the data.
+ 
-     Options: 
+     Options:
+ 
          columns: A semicolon-delimited list of column names. If omitted, the 
result will contain all columns in the row.
  
  ~-''St.Ack comment 11/17/2007: Only one column allowed in hbase currently.-~
@@ -96, +98 @@

      Headers:
          Content-type:
              application/xml:    The client is sending one or more columns of 
data in an XML entity.
+ 
              Multipart/related:  The client is sending multiple columns of 
data encoded with boundaries.
              
      Options:
+ 
          columns: A semicolon-delimited list of column names. This attribute 
is ignored when the Content-type is application/xml.
      
      Returns:
@@ -111, +115 @@

  ~-''Bryan comment: While we certainly could use headers, I'd prefer not to. 
Headers seem like an ugly way to say what you're sending. In REST, you're 
supposed to specify '''what''' you're acting on in the URI, not headers, and 
which columns to save to qualifies to me. It may turn out to be an 
implementation question, but we'll see. ''-~
  
  
- ~-''St.Ack comment 11/15/2007: I agree -~ 
+ ~-''St.Ack comment 11/15/2007: I agree -~
+ 
+ ~-''St.Ack comment 11/18/2007: If the get on a row is full -- i.e. return all 
cells in a row -- there is no way for response to say what the column name for 
the cell is when doing MIME other than put it in the header 
(Content-Description header?).  To be symmetric, maybe client posting data 
should put column name in same place? I could do implementation so it works 
with both.-~ 
  
      
  '''DELETE /[table_name]/row/[row_key]/'''
@@ -121, +127 @@

      Delete the specified columns from the row. If there are no columns 
specified, then it will delete ALL columns. Optionally, specify a timestamp.
      
      Options:
+ 
          columns: A semicolon-delimited list of column names. If omitted, the 
result will delete all columns in the row.
      
      Returns:
@@ -131, +138 @@

  
  '''POST/PUT /[table_name]/scanner'''
      Request that a scanner be created with the specified options. Returns a 
scanner ID that can be used to iterate over the results of the scanner.
+ 
      Options: 
+ 
          columns: A semicolon-delimited list of column names. If omitted, each 
result will contain all columns in the row.
          
          start_key, end_key: Starting and ending keys that enclose the region 
that should be scanned.
+         
+         timestamp: Timestamp at which to start the scanner.
+ 
  
      Returns:
          HTTP 201 (Created) with a Location header that references the scanner 
URI. Example:
          /first_table/scanner/1234348890231890
+ 
+ ~-''St.Ack comment 11/18/2007: I added timestamp parameter. Should start_key, 
end_key, OR timestamp be on the URL path to sync. with how they are specified 
GET'ing, etc?-~
+ 
          
  '''GET /[table_name]/scanner/[scanner_id]/current'''
      Get the row and columns for the current item in the scanner without 
advancing the scanner. 
@@ -183, +198 @@

  
  ~- Bryan comment: What I mean is that instead of supporting two separate 
verbs to two different URIs (/current and /next) there would be only one URI 
with two verbs. Additionally, after some more thought, I think DELETE would be 
better because it implies that something is being consumed or deleted, as 
opposed to POST/PUT which sort of imply something new is being created. Again, 
though, I think it is a bit of hair splitting, seeing as how the HTTP spec is 
going to have to be bent a little to work right for this particular request 
anyways (DELETE or POST/PUT shouldn't usually return an entity-body, and we 
will want it to so that we don't have to make two separate requests, one for 
getting the current and another for advancing it). -~
  
- ~-''St.Ack comment 11/18/2007: Trying to implement, the 'current' tail on a 
resource URI doesn't add any value GET'ing; what else but the 'current' record 
would you be GETing. A GET on a URI that ends in a scannerid is enough to 
figure whats wanted.  If this is allowed, given that below a delete on a URI 
that ends in a scannerid closes the scanner, I would suggest that a PUT/POST on 
an URI that ends in a scannerid is the way to advance it (returning current 
value).-~
+ ~-''St.Ack comment 11/18/2007: Trying to implement, the 'current' tail on a 
resource URI doesn't add any value GET'ing; what else but the 'current' record 
would you be GETing. A GET on a URI that ends in a scannerid is enough to 
figure whats wanted.  If this is allowed, given that below a delete on a URI 
that ends in a scannerid closes the scanner, I would suggest that a PUT/POST on 
an URI that ends in a scannerid is the way to advance it (returns the 'next' 
value -- you have to call 'next' on scanner to get first value).-~
  
  
  '''DELETE /[table_name]/scanner/[scanner_id]'''

Reply via email to