Difference between revisions of "rest/json"

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