HBASE-17962 Improve documentation on Rest interface

Signed-off-by: Sean Busbey <bus...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/fc68f23a
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/fc68f23a
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/fc68f23a

Branch: refs/heads/master
Commit: fc68f23a4889271888ca8ba3fde1f6f86d3f0fce
Parents: 03e8f6b
Author: Niels Basjes <nbas...@bol.com>
Authored: Wed Apr 26 11:21:39 2017 +0200
Committer: Sean Busbey <bus...@apache.org>
Committed: Fri Apr 28 11:28:29 2017 -0500

----------------------------------------------------------------------
 .../main/java/org/apache/hadoop/hbase/rest/RowResource.java | 8 +++++++-
 src/main/asciidoc/_chapters/external_apis.adoc              | 9 ++++++---
 2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/fc68f23a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
----------------------------------------------------------------------
diff --git 
a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java 
b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
index 7be4190..41b465f 100644
--- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
+++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/RowResource.java
@@ -139,7 +139,13 @@ public class RowResource extends ResourceBase {
     if (!rowspec.hasColumns() || rowspec.getColumns().length > 1) {
       servlet.getMetrics().incrementFailedGetRequests(1);
       return Response.status(Response.Status.BAD_REQUEST).type(MIMETYPE_TEXT)
-          .entity("Bad request: Either 0 or more than 1 columns specified." + 
CRLF).build();
+          .entity("Bad request: Default 'GET' method only works if there is 
exactly 1 column " +
+                  "in the row. Using the 'Accept' header with one of these 
formats lets you " +
+                  "retrieve the entire row if it has multiple columns: " +
+                  // Same as the @Produces list for the get method.
+                  MIMETYPE_XML + ", " + MIMETYPE_JSON + ", " +
+                  MIMETYPE_PROTOBUF + ", " + MIMETYPE_PROTOBUF_IETF +
+                  CRLF).build();
     }
     MultivaluedMap<String, String> params = uriInfo.getQueryParameters();
     try {

http://git-wip-us.apache.org/repos/asf/hbase/blob/fc68f23a/src/main/asciidoc/_chapters/external_apis.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/_chapters/external_apis.adoc 
b/src/main/asciidoc/_chapters/external_apis.adoc
index 556c4e0..2f85461 100644
--- a/src/main/asciidoc/_chapters/external_apis.adoc
+++ b/src/main/asciidoc/_chapters/external_apis.adoc
@@ -225,14 +225,17 @@ creation or mutation, and `DELETE` for deletion.
 |Description
 |Example
 
-|/_table_/_row_/_column:qualifier_/_timestamp_
+|/_table_/_row_
 |GET
-|Get the value of a single row. Values are Base-64 encoded.
+|Get all columns of a single row. Values are Base-64 encoded. This requires 
the "Accept" request header with a type that can hold multiple columns (like 
xml, json or protobuf).
 |curl -vi -X GET \
   -H "Accept: text/xml" \
   "http://example.com:8000/users/row1";
 
-curl -vi -X GET \
+|/_table_/_row_/_column:qualifier_/_timestamp_
+|GET
+|Get the value of a single column. Values are Base-64 encoded.
+|curl -vi -X GET \
   -H "Accept: text/xml" \
   "http://example.com:8000/users/row1/cf:a/1458586888395";
 

Reply via email to