It seems that the solution of Eduard is possible to implement (of
course, have to check if restlet is doing it or if we have to change
framework).

http://www.nakov.com/blog/2009/07/15/jax-rs-path-pathparam-and-optional-parameters/

On 03/07/2015 11:20, Fabio Mancinelli 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 <[email protected]> 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] <[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
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
> 

-- 
Jean Simard
[email protected]
Research engineer at XWiki SAS
http://www.xwiki.com
Committer on the XWiki.org project
http://www.xwiki.org
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to