Dear Wiki user,

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

The "Hbase/Stargate" page has been changed by Misty:
https://wiki.apache.org/hadoop/Hbase/Stargate?action=diff&rev1=9&rev2=10

  = Stargate =
- 
  Stargate is the name of the REST server bundled with HBase.
  
  == Table Of Contents ==
-  1. [[#2|Deployment]]
+  1. [[#A2|Deployment]]
-  1. [[#3|Representational State Transfer]]
+  1. [[#A3|Representational State Transfer]]
-  1. [[#4|Resource Identifiers]]
+  1. [[#A4|Resource Identifiers]]
-  1. [[#5|Operations]]
+  1. [[#A5|Operations]]
-  1. [[#6|XML Schema]]
+  1. [[#A6|XML Schema]]
-  1. [[#7|Protobufs Schema]]
+  1. [[#A7|Protobufs Schema]]
  
  <<Anchor(1)>>
+ 
  == Deployment ==
- 
- Stargate can run as a daemon which starts an embedded Jetty servlet container 
and deploys the servlet into it. 
+ Stargate can run as a daemon which starts an embedded Jetty servlet container 
and deploys the servlet into it.
  
- 
- Start the embedded Jetty servlet container: 
+ Start the embedded Jetty servlet container:
  
  In the foreground:
-     {{{ % ./bin/hbase rest start -p <port> }}}<<BR>><<BR>>
+ 
-     where <port> is optional, and is the port the connector should listen on. 
(Default is 8080.)<<BR>>
+  . {{{ % ./bin/hbase rest start -p <port> }}}<<BR>><<BR>> where <port> is 
optional, and is the port the connector should listen on. (Default is 
8080.)<<BR>>
  
  In the background (with output directed to its own log under $HBASE_LOGS_DIR):
-     {{{ % ./bin/hbase-daemon.sh start rest -p <port>}}} <<BR>><<BR>>
+ 
-     where <port> is optional, and is the port the connector should listen on. 
(Default is 8080.)
+  . {{{ % ./bin/hbase-daemon.sh start rest -p <port>}}} <<BR>><<BR>> where 
<port> is optional, and is the port the connector should listen on. (Default is 
8080.)
  
  To stop:
+ 
-     {{{ % ./bin/hbase-daemon.sh stop rest }}}
+  . {{{ % ./bin/hbase-daemon.sh stop rest }}}
  
  <<Anchor(2)>>
+ 
  == Representational State Transfer ==
- 
- The terms "representational state transfer" and "REST" were introduced in 
2000 in the doctoral dissertation of Roy Fielding, one of the principal authors 
of the Hypertext Transfer Protocol (HTTP) specification. 
+ The terms "representational state transfer" and "REST" were introduced in 
2000 in the doctoral dissertation of Roy Fielding, one of the principal authors 
of the Hypertext Transfer Protocol (HTTP) specification.
  
- A GET to an identifier requests a copy of the information in the supplied 
content type. 
+ A GET to an identifier requests a copy of the information in the supplied 
content type.
  
- A PUT to an identifier replaces the information. The supplied content type 
determines how it is to be interpreted. 
+ A PUT to an identifier replaces the information. The supplied content type 
determines how it is to be interpreted.
  
- POST adds information. 
+ POST adds information.
  
- DELETE eliminates information. 
+ DELETE eliminates information.
- 
  
  <<Anchor(3)>>
+ 
  == Resource Identifiers ==
- 
- RFC 3968 defines URL syntax: 
+ RFC 3968 defines URL syntax:
  
+ {{{scheme://user:[email protected]:8080/path/to/file;type=foo?name=val#frag 
}}}<<BR>> {{{\_____/  
\_______/\___________/\__/\______/\____/\______/\________/\___/ }}}<<BR>> {{{   
|         |          |       |     |      |       |       |       | }}}<<BR>> 
{{{ scheme   userinfo  hostname  port  path  filename param   query fragment 
}}}<<BR>> {{{         \________________________/ }}}<<BR>> {{{                  
authority }}}<<BR>>
- {{{scheme://user:[email protected]:8080/path/to/file;type=foo?name=val#frag 
}}}<<BR>>
- {{{\_____/  \_______/\___________/\__/\______/\____/\______/\________/\___/ 
}}}<<BR>>
- {{{   |         |          |       |     |      |       |       |       | 
}}}<<BR>>
- {{{ scheme   userinfo  hostname  port  path  filename param   query fragment 
}}}<<BR>>
- {{{         \________________________/ }}}<<BR>>
- {{{                  authority }}}<<BR>>
  
- Stargate exposes HBase tables, rows, cells, and metadata as URL specified 
resources. 
+ Stargate exposes HBase tables, rows, cells, and metadata as URL specified 
resources.
  
  === Addressing for cell or row query (GET) ===
+ {{{path := '/' <table> }}}<<BR>> {{{        '/' <row> }}}<<BR>> {{{        ( 
'/' ( <column> ( ':' <qualifier> )? }}}<<BR>> {{{                ( ',' <column> 
( ':' <qualifier> )? )+ )? }}}<<BR>> {{{            ( '/' ( <start-timestamp> 
',' )? <end-timestamp> )? )? }}}<<BR>> {{{query := ( '?' 'v' '=' <num-versions> 
)? }}}<<BR>>
- 
- {{{path := '/' <table> }}}<<BR>>
- {{{        '/' <row> }}}<<BR>>
- {{{        ( '/' ( <column> ( ':' <qualifier> )? }}}<<BR>>
- {{{                ( ',' <column> ( ':' <qualifier> )? )+ )? }}}<<BR>>
- {{{            ( '/' ( <start-timestamp> ',' )? <end-timestamp> )? )? 
}}}<<BR>>
- {{{query := ( '?' 'v' '=' <num-versions> )? }}}<<BR>>
  
  === Addressing for single value store (PUT) ===
- 
- Address with table, row, column (and optional qualifier), and optional 
timestamp. 
+ Address with table, row, column (and optional qualifier), and optional 
timestamp.
  
- {{{path := '/' <table> '/' <row> '/' <column> ( ':' <qualifier> )? }}}<<BR>>
+ {{{path := '/' <table> '/' <row> '/' <column> ( ':' <qualifier> )? }}}<<BR>> 
{{{          ( '/' <timestamp> )? }}}<<BR>>
- {{{          ( '/' <timestamp> )? }}}<<BR>>
  
  === Addressing for multiple (batched) value store (PUT) ===
- 
  {{{path := '/' <table> '/' <false-row-key> }}}
  
  === Addressing for row, column, or cell DELETE ===
+ {{{path := '/' <table> }}}<<BR>> {{{        '/' <row> }}}<<BR>> {{{        ( 
'/' <column> ( ':' <qualifier> )? }}}<<BR>> {{{          ( '/' <timestamp> )? 
)? }}}<<BR>>
- 
- {{{path := '/' <table> }}}<<BR>>
- {{{        '/' <row> }}}<<BR>>
- {{{        ( '/' <column> ( ':' <qualifier> )? }}}<<BR>>
- {{{          ( '/' <timestamp> )? )? }}}<<BR>>
  
  === Addressing for table creation or schema update (PUT or POST), schema 
query (GET), or delete (DELETE) ===
- 
  {{{path := '/' <table> / 'schema' }}}
  
  === Addressing for scanner creation (POST) ===
- 
  {{{path := '/' <table> '/' 'scanner' }}}
  
  === Addressing for scanner next item (GET) ===
- 
  {{{path := '/' <table> '/' 'scanner' '/' <scanner-id> }}}
  
  === Addressing for scanner deletion (DELETE) ===
- 
  {{{path := '/' <table> '/' '%scanner' '/' <scanner-id> }}}
  
- 
  <<Anchor(4)>>
+ 
  == Operations ==
- 
  Following are semantics and examples of supported operations.
  
+ === JSON Notation Guidelines ===
+ [[https://issues.apache.org/jira/browse/HBASE-9435|HBASE-9435]] replaced 
Jersey with Jackson for serializing and deserializing JSON. During 
implementation of this change, a bug in Jersey was found. This bug caused 
mapped and natural JSON notation to be used interchangeably, and both types 
were treated as natural. Mapped notation uses the '@' symbol in mappings. HBase 
had been simply ignoring the '@' symbols. It was decided to deprecate use of 
mapped notation. Mapped notation is no longer supported, and using the '@' 
symbol in JSON notation will cause errors such as the following:
+ 
+ {{{
+  HTTP/1.1 500 Can not deserialize instance of java.util.List out of 
START_OBJECT token [...]
+ }}}
+  . Since the '@' symbol was ignored previously, there is no change in 
functionality by removing it. Examples in this article have been updated to 
remove the '@' symbol.
+ 
  === Query Software Version ===
- 
  {{{GET /version}}}
  
- Returns the software version. Set Accept header to text/plain for plain text 
output. Set Accept header to text/xml for XML reply. Set Accept header to 
application/json for JSON reply. Set Accept header to application/x-protobuf 
for protobufs. 
+ Returns the software version. Set Accept header to text/plain for plain text 
output. Set Accept header to text/xml for XML reply. Set Accept header to 
application/json for JSON reply. Set Accept header to application/x-protobuf 
for protobufs.
  
- If not successful, returns appropriate HTTP error status code. If successful, 
returns the software version. 
+ If not successful, returns appropriate HTTP error status code. If successful, 
returns the software version.
  
- Examples: 
+ Examples:
  
  {{{
  % curl http://localhost:8000/version
@@ -168, +150 @@

  000060 06 36 2e 31 2e 31 34 2a 08 31 2e 31 2e 30 2d 65
  000070 61
  }}}
- 
  === Query Storage Cluster Version ===
- 
  {{{GET /version/cluster}}}
  
- Returns version information regarding the HBase cluster backing the Stargate 
instance. 
+ Returns version information regarding the HBase cluster backing the Stargate 
instance.
  
- Examples: 
+ Examples:
  
  {{{
  % curl http://localhost:8000/version/cluster
@@ -206, +186 @@

  
  "0.20.0"
  }}}
- 
  === Query Storage Cluster Status ===
- 
  {{{GET /status/cluster}}}
  
- Returns detailed status on the HBase cluster backing the Stargate instance. 
+ Returns detailed status on the HBase cluster backing the Stargate instance.
  
- Examples: 
+ Examples:
  
  {{{
  % curl http://localhost:8000/status/cluster
@@ -293, +271 @@

  jQ0ODcwMzIwMzQz"},{"@name":"LVJPT1QtLCww"},{"@name":"Y29udGVudCwsMTI0NDg1MTk5O
  TE4Nw=="}]} } }
  }}}
- 
  === Query Table List ===
- 
  {{{GET /}}}
  
- Retrieves the list of available tables. Set Accept header to text/plain for 
plain text output. Set Accept header to text/xml for XML reply. Set Accept 
header to application/json for JSON reply. Set Accept header to 
application/x-protobuf for protobufs. If not successful, returns appropriate 
HTTP error status code. If successful, returns the table list in the requested 
encoding. 
+ Retrieves the list of available tables. Set Accept header to text/plain for 
plain text output. Set Accept header to text/xml for XML reply. Set Accept 
header to application/json for JSON reply. Set Accept header to 
application/x-protobuf for protobufs. If not successful, returns appropriate 
HTTP error status code. If successful, returns the table list in the requested 
encoding.
  
- Examples: 
+ Examples:
  
  {{{
  % curl http://localhost:8000/
@@ -341, +317 @@

  
  000000 0a 07 63 6f 6e 74 65 6e 74 0a 04 75 72 6c 73
  }}}
- 
  === Query Table Schema ===
- 
  {{{GET /<table>/schema}}}
  
- Retrieves table schema. Set Accept header to text/plain for plain text 
output. Set Accept header to text/xml for XML reply. Set Accept header to 
application/json for JSON reply. Set Accept header to application/x-protobuf 
for protobufs. If not successful, returns appropriate HTTP error status code. 
If successful, returns the table schema in the requested encoding. 
+ Retrieves table schema. Set Accept header to text/plain for plain text 
output. Set Accept header to text/xml for XML reply. Set Accept header to 
application/json for JSON reply. Set Accept header to application/x-protobuf 
for protobufs. If not successful, returns appropriate HTTP error status code. 
If successful, returns the table schema in the requested encoding.
  
- Examples: 
+ Examples:
  
  {{{
  % curl http://localhost:8000/content/schema
@@ -359, +333 @@

  Content-Type: text/plain
  
  { NAME=> 'content', IS_META => 'false', IS_ROOT => 'false', COLUMNS => [ { NA
- ME => 'content', BLOCKSIZE => '65536', BLOOMFILTER => 'false', BLOCKCACHE => 
+ ME => 'content', BLOCKSIZE => '65536', BLOOMFILTER => 'false', BLOCKCACHE =>
  'false', COMPRESSION => 'GZ', LENGTH => '2147483647', VERSIONS => '1', TTL =>
  '-1', IN_MEMORY => 'false' }, { NAME => 'info', BLOCKSIZE => '65536', BLOOMFI
  LTER => 'false', BLOCKCACHE => 'false', COMPRESSION => 'NONE', LENGTH => '214
@@ -415, +389 @@

  [...]
  000230 4f 4e 45
  }}}
- 
  === Create Table Or Update Table Schema ===
- 
  {{{PUT /<table>/schema}}}
  
  {{{POST /<table>/schema}}}
  
- Uploads table schema. PUT or POST creates table as necessary. PUT fully 
replaces schema. POST modifies schema (add or modify column family). Supply the 
full table schema for PUT or a well formed schema fragment for POST in the 
desired encoding. Set Content-Type header to text/xml if the desired encoding 
is XML. Set Content-Type header to application/json if the desired encoding is 
JSON. Set Content-Type header to application/x-protobuf if the desired encoding 
is protobufs. If not successful, returns appropriate HTTP error status code. If 
successful, returns HTTP 200 status. 
+ Uploads table schema. PUT or POST creates table as necessary. PUT fully 
replaces schema. POST modifies schema (add or modify column family). Supply the 
full table schema for PUT or a well formed schema fragment for POST in the 
desired encoding. Set Content-Type header to text/xml if the desired encoding 
is XML. Set Content-Type header to application/json if the desired encoding is 
JSON. Set Content-Type header to application/x-protobuf if the desired encoding 
is protobufs. If not successful, returns appropriate HTTP error status code. If 
successful, returns HTTP 200 status.
  
  === Query Table Metadata ===
- 
  {{{GET /<table>/regions}}}
  
- Retrieves table region metadata. Set Accept header to text/plain for plain 
text output. Set Accept header to text/xml for XML reply. Set Accept header to 
application/json for JSON reply. Set Accept header to application/x-protobuf 
for protobufs. If not successful, returns appropriate HTTP error status code. 
If successful, returns the table region metadata in the requested encoding. 
+ Retrieves table region metadata. Set Accept header to text/plain for plain 
text output. Set Accept header to text/xml for XML reply. Set Accept header to 
application/json for JSON reply. Set Accept header to application/x-protobuf 
for protobufs. If not successful, returns appropriate HTTP error status code. 
If successful, returns the table region metadata in the requested encoding.
  
- Examples: 
+ Examples:
  
  {{{
  % curl -H "Accept: text/xml" http://localhost:8000/content/regions
@@ -444, +415 @@

  <TableInfo name="content"><Region location="test:51025" endKey="M2VmMTZkNzc2Nj
  AzYmY5YjllNzc1YzljZWI2NDg2MGY=" startKey="" id="1244851999187" name="content,,
  1244851999187"/><Region location="test:51025" endKey="NjAxMjkyYTgzOWI5NWU1MDIw
- MGQ4Zjg3Njc4NTk4NjQ=" startKey="M2VmMTZkNzc2NjAzYmY5YjllNzc1YzljZWI2NDg2MGY=" 
+ MGQ4Zjg3Njc4NTk4NjQ=" startKey="M2VmMTZkNzc2NjAzYmY5YjllNzc1YzljZWI2NDg2MGY="
  id="1244869158156" name="content,3ef16d776603bf9b9e775c9ceb64860f,124486915815
  6"/><Region location="test:51025" endKey="N2Y2ZDQ4ODMwZWY1MWQ2MzVlOWE1YjY3MmU3
  OWEwODM=" startKey="NjAxMjkyYTgzOWI5NWU1MDIwMGQ4Zjg3Njc4NTk4NjQ=" id="12448691
@@ -503, +474 @@

  [...]
  0003c0 35
  }}}
- 
  === Delete Table ===
- 
  {{{DELETE /<table>/schema}}}
  
- Deletes a table. If not successful, returns appropriate HTTP error status 
code. If successful, returns HTTP 200 status. 
+ Deletes a table. If not successful, returns appropriate HTTP error status 
code. If successful, returns HTTP 200 status.
  
- NOTE: {{{DELETE /<table>}}} will not work 
+ NOTE: {{{DELETE /<table>}}} will not work
  
- Examples: 
+ Examples:
  
  {{{
  % telnet localhost 8000
@@ -521, +490 @@

  HTTP/1.1 200 OK
  Content-Length: 0
  }}}
- 
  === Cell Query (Single Value) ===
+ {{{GET /<table>/<row>/ }}}<<BR>> {{{    <column> ( : <qualifier> )? }}}<<BR>> 
{{{  ( / <timestamp> )? }}}<<BR>>
  
- {{{GET /<table>/<row>/ }}}<<BR>>
- {{{    <column> ( : <qualifier> )? }}}<<BR>>
- {{{  ( / <timestamp> )? }}}<<BR>>
- 
- Retrieves one cell, with optional specification of timestamp. Set Accept 
header to text/xml for XML reply. Set Accept header to application/x-protobuf 
for protobufs. Set Accept header to application/octet-stream for binary. If not 
successful, returns appropriate HTTP error status code. If successful, returns 
HTTP 200 status and cell data in the response body in the requested encoding. 
If the encoding is binary, returns row, column, and timestamp in X headers: 
X-Row, X-Column, and X-Timestamp, respectively. Depending on the precision of 
the resource specification, some of the X-headers may be elided as redundant. 
+ Retrieves one cell, with optional specification of timestamp. Set Accept 
header to text/xml for XML reply. Set Accept header to application/x-protobuf 
for protobufs. Set Accept header to application/octet-stream for binary. If not 
successful, returns appropriate HTTP error status code. If successful, returns 
HTTP 200 status and cell data in the response body in the requested encoding. 
If the encoding is binary, returns row, column, and timestamp in X headers: 
X-Row, X-Column, and X-Timestamp, respectively. Depending on the precision of 
the resource specification, some of the X-headers may be elided as redundant.
  
- Examples: 
+ Examples:
  
  {{{
  % curl -H "Accept: text/xml" 
http://localhost:8000/content/00012614f7d43df6418523445a6787d6/content:raw
@@ -586, +551 @@

  
  [...]
  }}}
- 
  === Cell or Row Query (Multiple Values) ===
+ {{{GET /<table>/<row> }}}<<BR>> {{{  ( / ( <column> ( : <qualifier> )? 
}}}<<BR>> {{{      ( , <column> ( : <qualifier> )? )+ )? }}}<<BR>> {{{    ( / ( 
<start-timestamp> ',' )? <end-timestamp> )? )? }}}<<BR>> {{{  ( ?v= 
<num-versions> )? }}}<<BR>>
  
- {{{GET /<table>/<row> }}}<<BR>>
- {{{  ( / ( <column> ( : <qualifier> )? }}}<<BR>>
- {{{      ( , <column> ( : <qualifier> )? )+ )? }}}<<BR>>
- {{{    ( / ( <start-timestamp> ',' )? <end-timestamp> )? )? }}}<<BR>>
- {{{  ( ?v= <num-versions> )? }}}<<BR>>
- 
- Retrieves one or more cells from a full row, or one or more specified columns 
in the row, with optional filtering via timestamp, and an optional restriction 
on the maximum number of versions to return. Set Accept header to text/xml for 
XML reply. Set Accept header to application/json for JSON reply. Set Accept 
header to application/x-protobuf for protobufs. Set Accept header to 
application/octet-stream for binary. If not successful, returns appropriate 
HTTP error status code. If successful, returns row results in the requested 
encoding. 
+ Retrieves one or more cells from a full row, or one or more specified columns 
in the row, with optional filtering via timestamp, and an optional restriction 
on the maximum number of versions to return. Set Accept header to text/xml for 
XML reply. Set Accept header to application/json for JSON reply. Set Accept 
header to application/x-protobuf for protobufs. Set Accept header to 
application/octet-stream for binary. If not successful, returns appropriate 
HTTP error status code. If successful, returns row results in the requested 
encoding.
  
- NOTE: If binary encoding is requested, only one cell can be returned, the 
first to match the resource specification. The row, column, and timestamp 
associated with the cell will be transmitted in X headers: X-Row, X-Column, and 
X-Timestamp, respectively. Depending on the precision of the resource 
specification, some of the X-headers may be elided as redundant. 
+ NOTE: If binary encoding is requested, only one cell can be returned, the 
first to match the resource specification. The row, column, and timestamp 
associated with the cell will be transmitted in X headers: X-Row, X-Column, and 
X-Timestamp, respectively. Depending on the precision of the resource 
specification, some of the X-headers may be elided as redundant.
  
  '''Suffix Globbing'''
  
- Multiple value queries of a row can optionally append a suffix glob on the 
row key. This is a restricted form of scanner which will return all values in 
all rows that have keys which contain the supplied key on their left hand side, 
for example: 
+ Multiple value queries of a row can optionally append a suffix glob on the 
row key. This is a restricted form of scanner which will return all values in 
all rows that have keys which contain the supplied key on their left hand side, 
for example:
  
+  . {{{org.someorg.* }}}<<BR>> {{{ -> org.someorg.blog }}}<<BR>> {{{ -> 
org.someorg.home }}}<<BR>> {{{ -> org.someorg.www }}}<<BR>>
-     {{{org.someorg.* }}}<<BR>>
-     {{{ -> org.someorg.blog }}}<<BR>>
-     {{{ -> org.someorg.home }}}<<BR>>
-     {{{ -> org.someorg.www }}}<<BR>>
  
- Examples: 
+ Examples:
  
  {{{
  % curl -H "Accept: text/xml" 
http://localhost:8000/urls/https|ad.doubleclick.net|*
@@ -675, +631 @@

  0dHB8d3d3LnR3aXR0ZXIuY29tfDgwfGR1bmNhbnJpbGV5","$":"aHR0cDovL3d3dy50d2l0dGVyLm
  NvbTo4MC9kdW5jYW5yaWxleQ=="}]}}
  
- NOTE: The cell value is given in JSON encoding as the value associated with 
the key "$". 
+ NOTE: The cell value is given in JSON encoding as the value associated with 
the key "$".
  
  % curl -H "Accept: application/x-protobuf" 
http://localhost:8000/content/00012614f7d43df6418523445a6787d6
  
@@ -691, +647 @@

  [...]
  0002b0 69 6c 65 79
  }}}
- 
  === Cell Store (Single) ===
- 
  {{{PUT /<table>/<row>/<column>( : <qualifier> )? ( / <timestamp> )?}}}
  
  {{{POST /<table>/<row>/<column>( : <qualifier> )? ( / <timestamp> )?}}}
  
- Stores cell data into the specified location. If not successful, returns 
appropriate HTTP error status code. If successful, returns HTTP 200 status. Set 
Content-Type header to text/xml for XML encoding. Set Content-Type header to 
application/x-protobuf for protobufs encoding. Set Content-Type header to 
application/octet-stream for binary encoding. When using binary encoding, 
optionally, set X-Timestamp header to the desired timestamp. 
+ Stores cell data into the specified location. If not successful, returns 
appropriate HTTP error status code. If successful, returns HTTP 200 status. Set 
Content-Type header to text/xml for XML encoding. Set Content-Type header to 
application/x-protobuf for protobufs encoding. Set Content-Type header to 
application/octet-stream for binary encoding. When using binary encoding, 
optionally, set X-Timestamp header to the desired timestamp.
  
- PUT and POST operations are equivalent here: Specified addresses without 
existing data will create new values. Specified addresses with existing data 
will create new versions, overwriting an existing version if all of { row, 
column:qualifer, timestamp } match that of the existing value. 
+ PUT and POST operations are equivalent here: Specified addresses without 
existing data will create new values. Specified addresses with existing data 
will create new versions, overwriting an existing version if all of { row, 
column:qualifer, timestamp } match that of the existing value.
  
- See "Cell Query (Single Value)" section for encoding examples. 
+ See "Cell Query (Single Value)" section for encoding examples.
  
- Examples: 
+ Examples:
  
  {{{
  % curl -H "Content-Type: text/xml" --data '[...]' 
http://localhost:8000/test/testrow/test:testcolumn
@@ -712, +666 @@

  HTTP/1.1 200 OK
  Content-Length: 0
  }}}
- 
  === Cell Store (Multiple) ===
- 
  {{{PUT /<table>/<false-row-key>}}}
  
  {{{POST /<table>/<false-row-key>}}}
  
- Use a false row key. Row, column, and timestamp values in supplied cells 
override the specifications of the same on the path, allowing for posting of 
multiple values to a table in batch. If not successful, returns appropriate 
HTTP error status code. If successful, returns HTTP 200 status. Set 
Content-Type to text/xml for XML encoding. Set Content-Type header to 
application/x-protobuf for protobufs encoding. Supply commit data in the PUT or 
POST body. 
+ Use a false row key. Row, column, and timestamp values in supplied cells 
override the specifications of the same on the path, allowing for posting of 
multiple values to a table in batch. If not successful, returns appropriate 
HTTP error status code. If successful, returns HTTP 200 status. Set 
Content-Type to text/xml for XML encoding. Set Content-Type header to 
application/x-protobuf for protobufs encoding. Supply commit data in the PUT or 
POST body.
  
- PUT and POST operations are equivalent here: Specified addresses without 
existing data will create new values. Specified addresses with existing data 
will create new versions, overwriting an existing version if all of { row, 
column:qualifer, timestamp } match that of the existing value. 
+ PUT and POST operations are equivalent here: Specified addresses without 
existing data will create new values. Specified addresses with existing data 
will create new versions, overwriting an existing version if all of { row, 
column:qualifer, timestamp } match that of the existing value.
  
- See "Cell or Row Query (Multiple Values)" for encoding examples. 
+ See "Cell or Row Query (Multiple Values)" for encoding examples.
- 
  
  === Row, Column, or Cell Delete ===
+ {{{DELETE /<table>/<row> }}}<<BR>> {{{  ( / ( <column> ( : <qualifier> )? 
}}}<<BR>> {{{    ( / <timestamp> )? )? }}}<<BR>>
  
- {{{DELETE /<table>/<row> }}}<<BR>>
- {{{  ( / ( <column> ( : <qualifier> )? }}}<<BR>>
- {{{    ( / <timestamp> )? )? }}}<<BR>>
- 
- Deletes an entire row, a entire column family, or specific cell(s), depending 
on how specific the data address. If not successful, returns appropriate HTTP 
error status code. If successful, returns HTTP 200 status. 
+ Deletes an entire row, a entire column family, or specific cell(s), depending 
on how specific the data address. If not successful, returns appropriate HTTP 
error status code. If successful, returns HTTP 200 status.
  
- NOTE: {{{DELETE /<table>}}} will not work. Use {{{DELETE /<table>/schema}}} 
instead. 
+ NOTE: {{{DELETE /<table>}}} will not work. Use {{{DELETE /<table>/schema}}} 
instead.
  
  === Scanner Creation ===
- 
  {{{PUT /<table>/scanner}}}
  
  {{{POST /<table>/scanner}}}
  
- Allocates a new table scanner. If not successful, returns appropriate HTTP 
error status code. If successful, returns HTTP 201 status (created) and the URI 
which should be used to address the scanner, e.g. 
+ Allocates a new table scanner. If not successful, returns appropriate HTTP 
error status code. If successful, returns HTTP 201 status (created) and the URI 
which should be used to address the scanner, e.g.
  
-     {{{/<table>/scanner/112876541342014107c0fa92}}}
+  . {{{/<table>/scanner/112876541342014107c0fa92}}}
  
- Set Content-Type to text/xml if supplying an XML scanner specification. Set 
Content-Type to application/protobuf if supplying a protobufs encoded 
specification. 
+ Set Content-Type to text/xml if supplying an XML scanner specification. Set 
Content-Type to application/protobuf if supplying a protobufs encoded 
specification.
  
- Examples: 
+ Examples:
  
  {{{
  % curl -H "Content-Type: text/xml" -d '<Scanner batch="1"/>' 
http://localhost:8000/content/scanner
@@ -757, +704 @@

  Location: http://localhost:8000/content/scanner/12447063229213b1937
  Content-Length: 0
  }}}
- 
  === Scanner Get Next ===
- 
  {{{GET /<table>/scanner/<scanner-id>}}}
  
- Returns the values of the next cells found by the scanner, up to the 
configured batch amount. Set Accept header to text/xml for XML encoding. Set 
Accept header to application/x-protobuf for protobufs encoding. Set Accept 
header to application/octet-stream for binary encoding. If not successful, 
returns appropriate HTTP error status code. If result is successful but the 
scanner is exhausted, returns HTTP 204 status (no content). Otherwise, returns 
HTTP 200 status and row and cell data in the response body. See examples from 
the "Cell or Row Query (Multiple Values)" section. 
+ Returns the values of the next cells found by the scanner, up to the 
configured batch amount. Set Accept header to text/xml for XML encoding. Set 
Accept header to application/x-protobuf for protobufs encoding. Set Accept 
header to application/octet-stream for binary encoding. If not successful, 
returns appropriate HTTP error status code. If result is successful but the 
scanner is exhausted, returns HTTP 204 status (no content). Otherwise, returns 
HTTP 200 status and row and cell data in the response body. See examples from 
the "Cell or Row Query (Multiple Values)" section.
  
- NOTE: The binary encoding option returns only one cell regardless of the 
batching parameter supplied during scanner creation. The row, column, and 
timestamp associated with the cell are transmitted as X-headers: X-Row, 
X-Column, and X-Timestamp respectively. 
+ NOTE: The binary encoding option returns only one cell regardless of the 
batching parameter supplied during scanner creation. The row, column, and 
timestamp associated with the cell are transmitted as X-headers: X-Row, 
X-Column, and X-Timestamp respectively.
  
- Examples: 
+ Examples:
  
  {{{
  % curl -H "Content-Type: text/xml" 
http://localhost:8000/content/scanner/12447063229213b1937
@@ -824, +769 @@

  000010 6f 72 6b 2e 63 6f 6d 3a 38 30 2f 72 6f 62 6f 74
  000020 73 2e 74 78 74
  }}}
- 
  === Scanner Deletion ===
- 
  {{{DELETE /<table>/scanner/<scanner-id>}}}
  
- Deletes resources associated with the scanner. This is an optional action. 
Scanners will expire after some globally configurable interval has elapsed with 
no activity on the scanner. If not successful, returns appropriate HTTP error 
status code. If successful, returns HTTP status 200. 
+ Deletes resources associated with the scanner. This is an optional action. 
Scanners will expire after some globally configurable interval has elapsed with 
no activity on the scanner. If not successful, returns appropriate HTTP error 
status code. If successful, returns HTTP status 200.
  
- Examples: 
+ Examples:
  
  {{{
  % telnet localhost 8000
@@ -840, +783 @@

  HTTP/1.1 200 OK
  Content-Length: 0
  }}}
- 
  <<Anchor(5)>>
+ 
  == XML Schema ==
- 
  {{{
  <schema xmlns="http://www.w3.org/2001/XMLSchema"; xmlns:tns="RESTSchema">
  
      <element name="Version" type="tns:Version"></element>
-     
+ 
      <complexType name="Version">
        <attribute name="REST" type="string"></attribute>
        <attribute name="JVM" type="string"></attribute>
@@ -858, +800 @@

      </complexType>
  
      <element name="TableList" type="tns:TableList"></element>
-     
+ 
      <complexType name="TableList">
          <sequence>
              <element name="table" type="tns:Table" maxOccurs="unbounded" 
minOccurs="1"></element>
@@ -872, +814 @@

      </complexType>
  
      <element name="TableInfo" type="tns:TableInfo"></element>
-     
+ 
      <complexType name="TableInfo">
          <sequence>
              <element name="region" type="tns:TableRegion" 
maxOccurs="unbounded" minOccurs="1"></element>
@@ -889, +831 @@

      </complexType>
  
      <element name="TableSchema" type="tns:TableSchema"></element>
-     
+ 
      <complexType name="TableSchema">
          <sequence>
              <element name="column" type="tns:ColumnSchema" 
maxOccurs="unbounded" minOccurs="1"></element>
@@ -919, +861 @@

              <element name="cell" type="tns:Cell" maxOccurs="unbounded" 
minOccurs="1"></element>
          </sequence>
      </complexType>
-  
+ 
      <element name="Cell" type="tns:Cell"></element>
  
      <complexType name="Cell">
@@ -934, +876 @@

      </complexType>
  
      <element name="Scanner" type="tns:Scanner"></element>
-     
+ 
      <complexType name="Scanner">
          <sequence>
              <element name="column" type="base64Binary" minOccurs="0" 
maxOccurs="unbounded"></element>
@@ -958, +900 @@

      <element name="StorageClusterStatus"
          type="tns:StorageClusterStatus">
      </element>
-     
+ 
      <complexType name="StorageClusterStatus">
          <sequence>
              <element name="liveNode" type="tns:Node"
@@ -997, +939 @@

  
  </schema>
  }}}
- 
  <<Anchor(6)>>
+ 
  == Protobufs Schema ==
- 
  {{{
  message Version {
    optional string restVersion = 1;
@@ -1031, +972 @@

    repeated Node liveNodes = 1;
    repeated string deadNodes = 2;
    // summary statistics
-   optional int32 regions = 3; 
+   optional int32 regions = 3;
-   optional int32 requests = 4; 
+   optional int32 requests = 4;
    optional double averageLoad = 5;
  }
  
@@ -1057, +998 @@

    message Attribute {
      required string name = 1;
      required string value = 2;
-   }  
+   }
    repeated Attribute attrs = 2;
    repeated ColumnSchema columns = 3;
    // optional helpful encodings of commonly used attributes

Reply via email to