Hi, here's my 2 cents re the first proposal... Why do we have separation between objects and tags/comments? Shouldn't the objects mapping be enough to handle them? And speaking of objects where is the path to get all objects, not just from a page? I propose: * /objects[?start=offset&number=n] (The list of objects in the wiki) * /objects/{className}/ (All the object of class {className} in the wiki) <-- missing * /object/guid/{guid} (The object identified by its {guid}) * /object/guid/{guid}/properties (The property list for the object identified by its {guid}) * /object/guid/{guid}/properties/{property} (The property for the object identified by its {guid}) * /object/guid/{guid}/history/{version} (The version {version} of the object identified by {guid}) * /object/guid/{guid}/history/{version}/properties (The property list for the version {version} of the object identified by {guid}) * /space/{space}/page/{page}/objects[?start=offset&number=n] (The list of objects associated to a {page}) * /space/{space}/page/{page}/objects/{className}/ (All the object of class {className} in a {page}) <-- missing * /space/{space}/page/{page}/history/{version}/objects[?start=offset&number=n] (The list of objects associated to a {page}'s {version}) * /space/{space}/page/{page}/history/{version}/objects/{className}/ (All the object of class {className} in a {page}'s {version}) <-- missing Do we still need this, since the object's number should be deprecated by the use of the guid: * /space/{space}/page/{page}/object/{className}/{objectNumber} (The object identified by {id}) * /space/{space}/page/{page}/object/{className}/{objectNumber}/properties (The property list for the object identified by {id}) * /space/{space}/page/{page}/object/{className}/{objectNumber}/properties/{property} (The property the object identified by {id}) And does it make sense to have this, when we already know the guid of the object we want: * /spaces/{space}/pages/{page}/objects/guid/{guid} (The object identified by its {guid}) * /spaces/{space}/pages/{page}/objects/guid/{guid}/properties (The property list for the object identified by its {guid}) * /spaces/{space}/pages/{page}/objects/guid/{guid}/properties/{property} (The property for the object identified by its {guid}) The semantics implies that object operations can be performed on: - a page - an older version of a page (read-only) - the wiki IMO, it's more flexible this way. With this mapping you should have access to comments/tags (and attachments?). The drawback would be that we loose: * /tags/{tag1}[,{tag2},{tag3}...][?start=offset&number=n] (The list of pages tagged with tags {tag1}, {tag2}, {tag3}, ...) Of course, we could still have it as a convention or we could even create a generic way of getting this result with other objects as well. Related to pages, we could also have: * /pages[?start=offset&number=n] (The list of available pages in the space in the entire wiki) Could we need it? Thanks. P.S.: From what I asked around, it seems that attachments are not objects. That seems weird to me because, intuitively, the attachments should be objects on a page of the class Attachment. On attachments you have versioning, meta-data and an attachment can exist on a page or not, the behaviour of an object. Could anybody explain the reason for this please? Fabio Mancinelli wrote:
Dear all,
I worked a bit on the design of the RESTful API and as a result I've integrated what was written on the http://dev.xwiki.org/xwiki/bin/view/Design/RestfulAPI page.
There is still a big and important part missing (maybe the most important one), i.e., the one about the data formats for representations (in particular the XML schemas to be used in requests and responses). I am working on it.
Anyway you can already comment on what is present on the page.
Thank you.
-Fabio _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs