rest/json: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(initial page)
(Charter)
Line 1: Line 1:
= RESTful JSON =
= RESTful JSON =
== Charter ==
Given that:
* [http://en.wikipedia.org/wiki/Representational_State_Transfer REST] is a powerful architecture for scalable web services
* [http://www.json.org/ JSON] is a lightweight container for exchanging data
* [http://tools.ietf.org/html/rfc5023  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 ==
== Resources ==
* [http://bitworking.org/news/restful_json Original proposal]
* [http://bitworking.org/news/restful_json Original proposal]
* [http://groups.google.com/group/restful-json Google Group]
* [http://groups.google.com/group/restful-json Google Group]
* [http://tools.ietf.org/html/rfc5023 AtomPub] (for comparison/inspiration)
* [AtomPub] (for comparison/inspiration)


== Proposals ==
== Proposals ==
*  [[rest/urls]]
*  [[rest/urls]]
*  [[rest/json-collections]]
*  [[rest/json-collections]]
*  [http://www.sitepen.com/blog/2008/06/17/json-referencing-in-dojo/ JSON Referencing]


== Implementations ==
== Implementations ==

Revision as of 19:54, 2 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:

  1. is maximally compatible with existing (RESTful, generic) clients
  2. enables partial updates
  3. allows paging and/or partial returns of large datasets
  4. standardizes linking to related resources
  5. use of hypermedia (links + context) to manage application state
  6. does NOT become a full-fledged RPC solution

Resources

Proposals

Implementations