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] <[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
> >
> > --
> > 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
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to