Skip to content
BigBlueHat edited this page Aug 27, 2014 · 11 revisions

Hypermedia API "bake off!"

For the Hack Day this year, we're doing a good ole fashioned Hypermedia API "bake off."

The Bake Off will work in a similar fashion to a chili cook off or cake bake off you may have been to before...but with less mess! 😄

The primary objective is "tasting" all these various approaches to building the same thing in different "flavors." Because of that a non-goal is making sure these API's all work together. As such, there's no requirement to share media types, URL design, etc. However, building the "full stack" (server, client, and/or some basic documentation) for your "flavor" of choice is ideal.

Attendees will bring their best Hypermedia API skills and group-up (or "cook" solo) to present their best variation on the spec below.

NOTE: This is a work in progress, so please contribute!

ToDo API "spec"

ACTIONS

Users MUST be able to:

  • create a new to-do item
  • get a list of to-do items
  • get a single to-do item
  • mark a to-do item complete (or incomplete)

Users SHOULD be able to:

  • edit a to-do item
  • assign/change the due-date of a to-do item

Users MAY be able to:

  • delete a to-do item

  • send a to-do item to another user

  • get a list of category items

  • get a single category item

  • create a category item

  • edit a category item

  • assign/change the category of a to-do item

  • delete a category item

  • create a user account

  • log in as an authenticated user

  • edit the user account

  • delete the user account

FIELDS

to-do items MUST have the following fields

  • id (globally unique)
  • title (name of the thing to do)

They SHOULD have:

  • due-date

They MAY have:

  • notes (additional text about the item)
  • category (this MAY hold more then one category value)
  • useraccount (owner of the item)
  • dateCreated
  • dateUpdated

category items MUST have:

  • id (globally unique)
  • title (name of the category)

category items MAY have:

  • dateCreated
  • dateUpdated
  • useraccount (user who created the item)

user items MUST have:

  • id (globally unique)
  • userName
  • password

user items SHOULD have:

  • givenName
  • familyName

user items MAY have:

  • avatarUrl
  • dateCreated
  • dateUpdated
  • userUrl (address of server that accepts "sent to-do items" for this user)
Clone this wiki locally