Application which aggregates personal content streams into a single stream/page
Name | Path | Representations |
---|---|---|
Home | / |
HTML |
A User | /{username} |
HTML, JSON |
A User’s Posts | /{username}/posts |
JSON, RSS |
A User’s Service | /{username}/services/{service-id} |
none (will respond with 204 or errors) |
OAuth Handler | /oauth-handler |
none (will respond with redirects only) |
Designed to be rendered by and viewed in a browser, this page will depend heavily on JavaScript to retrieve and render its content.
The representation will contain the scaffolding for displaying a user’s stream of posts; JavaScript code will retrieve and render the actual post stream.
{
"username": "kermit",
"display_name": "Kermit the Frog",
"gravatar_id": "",
"posts": {
"_type": "form",
"method": "GET"
"href": "https://current/kermit/posts"
"fields": [
{"name": "service"},
{"name": "before-post"},
{"name": "max-count"}
]
},
"services": {
"_type": "list",
"items": [
{
"name": "github"
"_type": "link",
"href": "https://current/kermit/services/github",
"posts": {
"_type": "link",
"href": "https://current/kermit/posts?service=github"
}
},
{
"name": "flickr"
"_type": "link",
"href": "https://current/kermit/services/flickr",
"posts": {
"_type": "link",
"href": "https://current/kermit/posts?service=flickr"
}
}
]
}
}
before-post
optional string; for “paging” (technically cursoring)max-count
optional integer; min: 1
; max: 100
; defaults to 20
service
optional string; no defaultEach post has these properties:
github
, twitter
,
flickr
, tumblr
, etc. (canonical list coming soon)created
, etc. (TBD soon){
"posts": {
"_type": "list",
"items": [
{
"_type": "link",
"href": "https://github.com/crsmithdev/arrow/issues/31"
"id": "234234556"
"service": "github",
"subject": "issue",
"action": "created",
"title": "The docs don’t make clear how to parse an ISO-8601 datetime string",
"subtitle": null,
"body": "<p>I’ve been perusing the docs for 10 minutes now trying to figure this out. I’d think it’s a common-enough use case that it should have an example in the docs.</p><p>It seems I should use <code>arrow.get(datetime_string, pattern_string)</code> but I don’t know what syntax to use for the pattern, and the docs don’t say what syntax is used so I can’t look it up.</p><p>So, some suggestions:<ol><li>add an example of parsing an ISO-8601 datetime string (with an offset)</li><li> add a link to the docs for the pattern syntax</li><li>add a module containing some “constants” with common datetime pattern strings.</li></ol></p>"
}
],
"next": "https://current/kermit/posts?before-post-id=234234556"
}
}
/kermit
https://api.twitter.com/oauth/authenticate
/oauth-handler
;/kermit
kermit
, the path to this resource will be /kermit
text/html
text/html
representation of the resource
/kermit
application/json
200 OK
and
an application/json
representation of the resource, the JS code will parse
the response body and render the list of services contained therein in the page/kermit/posts
application/json
200 OK
and
an application/json
representation of the resource, the JS code will parse
the response body and render the list of posts contained therein in the page(coming soon)
(coming soon)
(coming soon)
(coming soon)
(coming soon)