version the REST interface
--------------------------

                 Key: HBASE-2678
                 URL: https://issues.apache.org/jira/browse/HBASE-2678
             Project: HBase
          Issue Type: Sub-task
            Reporter: Andrew Purtell
            Assignee: Andrew Purtell


As mentioned in HBASE-2563, we should deprecate all uses of _cell_ in the API 
and replace with new APIs that use _value_ instead. So we need a way to version 
the REST interface, to provide an updated API while maintaining access to the 
deprecated one until the next major revision. However, something like this I 
consider wrong:

{{/path/to/v1/resource}}

and also:

{{/v2/path/to/resource}}

because the resource is the same regardless of the representation change. REST 
makes a distinction between the representation and the resource using media 
types. 

Currently Stargate supports the following encodings:

* {{text/plain}}  (in some cases)
* binary: {{application/octet-stream}} (freeform, no schema change needed)
* XML: {{text/xml}}
* JSON: {{application/json}}
* protobufs: {{application/x-protobuf}}

We can add Avro encoding support in HBASE-2557 with the new representation as 
{{application/x-avro-binary}} immediately. For XML, JSON, and protobuf 
encoding, we can support new representations using the following new media 
types in the current version:

* XML: {{application/vnd.hbase+xml}}
* JSON: {{application/vnd.hbase+json}}
* protobufs: {{application/vnd.hbase+protobuf}}
* and for sake of consistency: {{application/vnd.hbase+avro}}

and then in the next major version recognize both MIME types but return the 
same (newer) representation. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to