Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Resource

Method

Description/Payload schema/Response schema

api/sessions

GET

(It might make sense for this to return only the current session, but in theory it would return all sessions that the current session is allowed to access, so for an administrator, it might return all open sessions. An individual session would be accessed at GET api/sessions/SESSIONID.)

api/sessions

POST

Parameters: ?token=API_TOKEN

api/sessions/SESSIONID

DELETE

or
DELETE api/sessions?session=SESSIONID (get SESSIONID from api/sessions)

api/users

GET

 

api/users/USERID/messages

GET

(get USERID from api/session)

api/users/USERID/messages

GET

(long-poll?)

api/users/USERID/followees

GET

 

api/users/USERID/followers

GET

 

api/users/USERID/followees/USERID2

POST

or POST api/users/USERID/followees?user=USERID2

api/users/USERID/followees/USERID2

DELETE

or DELETE api/users/USERID/followees?user=USERID2

api/users/USERID/tracks

GET

 

api/users/USERID/tracks

POST

Parameters: ?track=TEXT_TO_TRACK

api/users/USERID/tracks/TRACKID

DELETE

 

api/users/USERID/actions

GET

(Actions probably don't make sense outside of the context of a specific user.)

api/users/USERID/actions

POST

Parameters: ?name=NAME&test=TEST&action=ACTION

POST

 

api/users/USERID/actions/ACTIONID

PUT

Parameters: ?enabled=true|false (This is actually a general outlet to update any attribute of an action, including whether or not it is enabled.)

api/users/USERID/actions/ACTIONID

DELETE

 

api/messages/MESSAGEID

GET

Gets a particular message.

api/messages

POST

parameters: message=MESSAGE_BODY&via=CLIENT&tags=TAGS&metadata=XML&replyto=MESSAGEID

api/messages/MESSAGEID

PUT

(payload the same as POST)

api/messages/MESSAGEID

DELETE

 

api/tags

GET

(This doesn't really seem like an appropriate API method. It should really return Return all of the tags, or user-specific tags (GET api/tags/USERID?) and let the front-end decide what to do with it.)

api/tags/TAGID

GET

Gets the information about a particular tag

api/conversations/CONVERSATIONID

GET

 

...

  1. Is the use of HTTP sessions necessary? Is it desirable?
  2. Request signing methods?
  3. Payload and response schemas must be defined
  4. Should API contain admin functions?
  5. Webhooks (http://blog.webhooks.org/)
    • ESME has webhooks as part of its actions framework, but we may want to document their existence as part of the API, and possibly improve the functionality if there are use cases (http://incubator.apache.org/esme/actions.html)
  6. What is a conversation?