fetch content from channel
To fetch content that was stored into a hub channel, do a GET on the self link in the above response:
GET http://hub/channel/stumptown/2013/04/23/20/42/31/749/{hash}
On success: HTTP/1.1 200 OK
Content-Type: text/plain
Creation-Date: 2013-04-23T00:21:30.662Z
Link: <http://hub/channel/stumptown/2013/04/23/20/42/31/749/{hash}/previous>;rel="previous"
Link: <http://hub/channel/stumptown/2013/04/23/20/42/31/749/{hash}/next>;rel="next"
X-Item-Length: 1234567890
...other.headers...
your content here
Notes:
- The Content-Typewill match the Content-Type used when inserting the data.
- There are two Linkheaders that provide links to the previous and next items in the channel.
- The Creation-Dateheader will correspond to when the data was inserted into the channel.
- The X-Item-Lengthheader will return-1for items inserted prior to the headers addition. You can force calculation by including theX-Item-Length-Required: trueheader on your request.
Here’s how you can do this with curl:
curl -i http://hub/channel/stumptown/2013/04/23/20/42/31/749/{hash}
fetch latest channel item
To retrieve the latest item inserted into a channel, issue a HEAD or GET request on the latest link
returned from the channel metadata.  The Hub will issue a 303 redirect.
HEAD http://hub/channel/stumptown/latest
On success:  HTTP/1.1 303 See Other
Location: http://hub/channel/stumptown/2013/04/23/20/42/31/749/{hash}
Here is how you can do this with curl:
curl -I http://hub/channel/stumptown/latest
You can also retrieve the latest N items by using /latest/{n}
fetch earliest channel item
To retrieve the earliest item inserted into a channel, issue a HEAD or GET request on the earliest link
returned from the channel metadata.  The Hub will issue a 303 redirect.
HEAD http://hub/channel/stumptown/earliest
On success:  HTTP/1.1 303 See Other
Location: http://hub/channel/stumptown/2013/04/23/20/42/31/749/{hash}
Here is how you can do this with curl:
curl -I http://hub/channel/stumptown/earliest
You can also retrieve the earliest N items by using /earliest/{n}
next and previous links
Any item’s uri can be appended with /next or /previous to navigate forward or backward. A 404 will be returned if there isn’t an item. The starting point does not need to be an real item in the hub, it can be a time.
If you append a number /next/20 or /previous/15, and you’ll receive a list of that many items.
For example:
GET http://hub/channel/stumptown/2014/12/23/23/14/50/514/xIXX5L/previous/3
On success: HTTP/1.1 200 OK
{
  "_links" : {
    "self" : {
      "href" : "http://hub/channel/stumptown/2014/12/23/23/14/50/514/xIXX5L/previous/3"
    },
    "next" : {
      "href" : "http://hub/channel/stumptown/2014/12/23/23/14/49/887/x46z8p/next/3"
    },
    "previous" : {
      "href" : "http://hub/channel/stumptown/2014/12/23/23/14/42/751/mRklXw/previous/3"
    },
    "uris" : [
        "http://hub/channel/stumptown/2014/12/23/23/14/47/376/swdWJD",
        "http://hub/channel/stumptown/2014/12/23/23/14/48/115/lDCHYY",
        "http://hub/channel/stumptown/2014/12/23/23/14/49/887/x46z8p"
        ]
  }
}
fetch bulk content from channel
Any query operation (including next, previous, earliest, latest, and times) supports the addition of the
query parameter ?bulk=true.  Using the bulk parameter will result in the content of the query items being streamed
as MIME or as a zip file to the client.
To get a zip file, specify the ‘Accept’ header as application/zip.
NOTE bulk was previously named batch.  batch is deprecated.
The hub will generate a random 70 character boundary, and follows the same MIME rules as bulk insert content into channel
Using the previous example:
GET http://hub/channel/stumptown/2014/12/23/23/14/50/514/xIXX5L/previous/3?bulk=true
On success: HTTP/1.1 200 OK
header:
content-type: multipart/mixed; boundary=||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||
body:
--||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||
Content-Type: application/json
Content-Key: http://hub/channel/stumptown/2014/12/23/23/14/47/376/swdWJD
{ "type" : "coffee", "roast" : "french" }
--||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||
Content-Type: application/json
Content-Key: http://hub/channel/stumptown/2014/12/23/23/14/48/115/lDCHYY
{ "type" : "coffee", "roast" : "italian" }
--||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||
Content-Type: application/json
Content-Key: http://hub/channel/stumptown/2014/12/23/23/14/49/887/x46z8p
{ "type" : "coffee", "roast" : "hair bender" }
--||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||~~~~~~||||||--
ordering content from channel
Any query operation (including next, previous, earliest, latest, and times) supports the addition of the
query parameter ?order=descending.  descending can be abbreviated to d, or any partial spelling.
Anything else will be interpreted as the default ascending.
This will cause all results (including bulk queries) to be returned in descending time order.