Skip to content
cainus edited this page Feb 25, 2012 · 4 revisions
  • Restful
  • Resource-Oriented
  • hypermedia aware
  • Solve everything so that the app developer just inputs schemas/validations, relationships, authorization, and collection querying.
  • Version 1.0 is mongo-only, json-only.
  • Route-less routing
  • No server-side html-rendering
  • easily unit-testable
  • don't try to abstract HTTP

Table of Contents

resources

  • dates: http://cbas.pandion.im/2009/10/generating-rfc-3339-timestamps-in.html
  • methods that are available
  • supported media types
  • representation definition
  • creation validators
  • does a resource encompass its collection?
  • awesome collection querying features
  • authorization
  • accept-language, accept-charset, accept-encoding can be supported?
  • POST vs. PUT for create
  • result is asynch? (202)
  • GET, DELETE, PUT, collectionPOST, collectionGET . All that's necessary? Named like this to be as close to http as possible. capital letters to match http, and so DELETE is allowed as a method name.
  • collection and individuals are in the same resource file (rails style) because they share too much code (validations, representations, etc)
  • need insert/update validations
  • register content-types and corresponding input/output filters
  • links as dict with rel as key : {links : { self : {href : asdf.com }}}
  • PUT vs. POST for create
  • support _method with POST
  • before-handlers? (create, update, access, delete, write, read) resource-specific middlewares? the idea is to not even have to use GET, POST, etc methods
  • authentication?

the framework

  • service document
  • hypermedia / relationships
  • if not PUT/POST and resource doesn't exist, 404
  • standard error format
  • xml, json standard formats
  • etags,
  • redirects
  • HEAD, OPTIONS
  • querystring (if necessary): https://github.com/visionmedia/node-querystring/
  • NO resource hierarchy. it's too brittle.

fuller stack?

  • auth,
  • logging
  • server health document

Inspiration

  • http://wiki.basho.com/images/http-headers-status-v3.png
  • http://stateless.co/hal_specification.html
  • http://django-tastypie.readthedocs.org/en/latest/tutorial.html

Clone this wiki locally