rest/json: Difference between revisions
Jump to navigation
Jump to search
(→Proposals: http://www.json.com/specifications/json-resources/) |
(→Implementations: Exhibit) |
||
Line 44: | Line 44: | ||
* [http://github.com/sproutit/sproutcore/wikis/sproutcore-rest-api-the-definitive-guide SproutCore] | * [http://github.com/sproutit/sproutcore/wikis/sproutcore-rest-api-the-definitive-guide SproutCore] | ||
* [http://code.google.com/p/grassyknoll/ Grassy Knoll] (Python) | * [http://code.google.com/p/grassyknoll/ Grassy Knoll] (Python) | ||
* [http://simile.mit.edu/wiki/Exhibit/Getting_Started_Tutorial Exhibit] ([http://simile.mit.edu/exhibit/examples/nobelists/nobelists.js example]) |
Revision as of 21:25, 5 September 2008
RESTful JSON
Charter
Given that:
- REST is a powerful architecture for scalable web services
- JSON is a lightweight container for exchanging data
- AtomPub, while RESTful, requires XML documents with strict metadata requirements
The goal of the RESTful JSON project is to develop a series of conventions for:
- URLs
- HTTP methods
- HTTP headers
- JSON fields
that:
- is maximally compatible with existing (RESTful, generic) clients
- enables partial updates
- allows paging and/or partial returns of large datasets
- standardizes linking to related resources
- use of hypermedia (links + context) to manage application state
- does NOT become a full-fledged RPC solution
Resources
- Original proposal by Joe Gregorio
- Standardizing RESTful JSON by Kris Zyp
- Google Group
- AtomPub (for comparison/inspiration)
Proposals
Issues
- Is the top-level entity a simple array (Persevere, Dojo) or a full-fledged object (CouchDB, ActiveRecord?)
Implementations
- CouchDB
- Jester (same URLs as ActiveResource)
- Dojo REST store
- DOM Resource
- Persevere
- SproutCore
- Grassy Knoll (Python)
- Exhibit (example)