I am currently trying to implement the multiple spaces proposal to see if it is doable.
2015-07-03 11:52 GMT+02:00 [email protected] <[email protected]>: > > > > > > On 3 Jul 2015 at 11:48:24, [email protected] ([email protected](mailto: > [email protected])) wrote: > > > Just for the record, I’m -1 for the dotted solution just for spaces as I > mentioned in the JIRA issue ( > http://jira.xwiki.org/browse/XWIKI-12206?focusedCommentId=87137&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-87137 > ) > > > > If we want to use “dots” then I much prefer that we use the serialized > reference as in: > > > > /rest/v2/type//ref/ > > > > Examples: > > > > /rest/v2/property/wiki:space1.space2.page^object.property > > /rest/v2/object/wiki:space1.space2.page^object > > /rest/v2/attachment/wiki:space1.space2.page@filename > > /rest/v2/page/wiki:space1.space2.page > > /rest/v2/space/wiki:space1.space2 > > /rest/v2/wiki/wiki > > I meant the following (to be self-describing): > > /rest/v2/type/property/ref/wiki:space1.space2.page^object.property > /rest/v2/type/object/ref/wiki:space1.space2.page^object > /rest/v2/type/attachment/ref/wiki:space1.space2.page@filename > /rest/v2/type/page/ref/wiki:space1.space2.page > /rest/v2/type/space/ref/wiki:space1.space2 > /rest/v2/type/wiki/ref/wiki > > Thanks > -Vincent > > > Note that this leads to shorter and simpler URLs. > > > > Thanks > > -Vincent > > > > On 3 Jul 2015 at 11:20:14, Fabio Mancinelli ([email protected] > (mailto:[email protected])) wrote: > > > > > Hi, > > > > > > We should check how to declare a URI Template of the form > > > /rest/wikis/xwiki/(spaces/SPACE)+/pages/PAGE in JAX-RS... The Spec > > > allows regexs in the URI Template defintion in @Path annotations but > > > this is something to be checked. I am not sure that it's that simple. > > > > > > Given the previous remark, maybe the dotted solution might be easier > to handle. > > > > > > Of course API versioning is a very good thing to have. > > > > > > Thanks, > > > Fabio > > > > > > > > > > > > > > > On Fri, Jul 3, 2015 at 12:55 AM, Eduard Moraru wrote: > > > > Hi, > > > > > > > > Initially, I wanted to go with the dots, however the backwards > > > > compatibility problem would force us to either use a different key > than > > > > "spaces" and deprecate "spaces" or to introduce versioning (i.e. path > > > > prefix like /rest/v1/wikis...), as Vincent said. > > > > > > > > However, the multiple "spaces" (I think this is what you meant, > Vincent) > > > > alternative has more (I`d say only) advantages than disadvantages. > So the > > > > URL would be: > > > > > > > > > /xwiki/rest/wikis/xwiki/spaces/Europe/spaces/France/spaces/Paris/pages/WebHome > > > > > > > > > > > > + is 100% backwards compatible > > > > ++ old apps will only be able to access the first level, as they were > > > > designed > > > > ++ No mixup between space name (unescaped) vs space reference > (escaped) > > > > ++ As a result, no need to introduce any versioningjust yet > > > > > > > > + indeed is much more restful, since at each step (e.g. France) you > can > > > > have either subspaces (e.g. Paris) or pages (e.g. WebHome or any > other > > > > terminal page) > > > > ++ in other words, the resource hierarchy is better exposed > > > > > > > > + Bonus, we stick to the good old "/" separator > > > > > > > > + Reflects perfectly the expansion of the model that we are doing > through NS > > > > > > > > +1 for dots, i.e. > > > > /xwiki/rest/wikis/xwiki/spaces/Europe.France.Paris/pages/WebHome > > > > > > > > - longer URLs for long paths > > > > > > > > So I`m +1 for the "multiple spaces" option. > > > > > > > > Thanks, > > > > Eduard > > > > > > > > On Thu, Jul 2, 2015 at 6:14 PM, [email protected] > > > > wrote: > > > > > > > >> I think we should decide what we want independently of the REST > framework > > > >> impl, to be the most restful possible. > > > >> > > > >> Then we check how to do it in the REST fwk we currently use > (restlet) and > > > >> if not possible then we should check if it’s possible with some > other REST > > > >> fwk (jersey for example). > > > >> > > > >> At worse, if we don’t want to wait we will need at least to > introduce API > > > >> versioning so that we can change it later on easily. > > > >> > > > >> There’s also the suggestion I proposed with several “pages” > elements which > > > >> seems potentially more restful than dots to me (but leads to longer > urls). > > > >> > > > >> So IMO you should research more about what is the RESTful approach > to this > > > >> before we can decide anything. > > > >> > > > >> Thanks > > > >> -Vincent > > > >> > > > >> On 2 Jul 2015 at 15:57:53, Guillaume Louis-Marie Delhumeau ( > > > >> [email protected](mailto:[email protected])) wrote: > > > >> > > > >> > Hi. > > > >> > > > > >> > This proposal is already explained in > > > >> > http://jira.xwiki.org/browse/XWIKI-12206. I think it is an > important > > > >> issue > > > >> > to fix because it blocks http://jira.xwiki.org/browse/XWIKI-12198 > > > >> (Ensure > > > >> > annotations work on nested spaces). > > > >> > > > > >> > The current REST URL for a space is: > > > >> > /xwiki/rest/wikis/xwiki/spaces/Europe > > > >> > > > > >> > and for a page: > > > >> > /xwiki/rest/wikis/xwiki/spaces/Europe/pages/WebHome > > > >> > > > > >> > The idea is to use dots as space separator in the REST URLs in > the case > > > >> of > > > >> > nested spaces. Example: > > > >> > /xwiki/rest/wikis/xwiki/spaces/Europe.France.Paris > > > >> > > > > >> > For spaces containing dots in their name, we simply escape them > with \ > > > >> > (%5C). > > > >> > > > > >> > It has the drawback to not have a similar URL than the standard > action, > > > >> ie: > > > >> > /xwiki/bin/view/Europe/France/Paris/WebHome - for view action > > > >> > /xwiki/rest/wikis/xwiki/spaces/Europe.France.Paris/pages/WebHome > - for > > > >> REST > > > >> > action > > > >> > > > > >> > But it does not seem possible to handle "/" in path parameters > with > > > >> Restlet. > > > >> > ie: > > > >> > /xwiki/rest/wikis/xwiki/spaces/Europe/France/Paris/pages/WebHome > > > >> > is not supported by Restlet. > > > >> > > > > >> > After a talk with some Restlet committers, they confirm me that > we have > > > >> to > > > >> > write our own URL router to handle this. I don't know if it worth > the > > > >> pain > > > >> > although I don't have evaluated it. > > > >> > > > > >> > So I guess this proposal using dots is the best option, but I'm > free to > > > >> > talk about this. > > > >> > > > > >> > Thanks, > > > >> > Guillaume > > > >> > > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > -- Guillaume Delhumeau ([email protected]) Research & Development Engineer at XWiki SAS Committer on the XWiki.org project _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

