On Mon, Jul 6, 2015 at 3:51 PM, Guillaume "Louis-Marie" Delhumeau
<gdelhum...@xwiki.com> wrote:
> For the record, what we use in our REST api is JAX-RS, a Java API to handle
> REST urls. We do not use Restlet directly.

s/We do not/We are not supposed to/ ;)

>
> There are several implementations of this API: Jersey (by Oracle), Apaxe
> CXF, etc... From what I've understood, Reslet is not a jax-rs
> implementation, but it provides one. This is why I had some issues while
> browsing the Restlet documentation, assuming it was only about JAX-RS.
>
> So actually the question is not "can Restlet handle this?" but "can JAX-RS
> handle it?".

Yep.

> If the answer is no, changing or upgrading our framework will
> not solve anything, unless we decide to stop using JAX-RS too.
>
>
>
> 2015-07-06 14:11 GMT+02:00 Jean SIMARD <jean.sim...@xwiki.com>:
>
>> Indeed, we may check.  However, in the documentation of restlet, there
>> is still sentences like "Note that this implementation is not final
>> yet." (which seems here forever) and "This extension is the result of a
>> (german) master thesis." which doesn't mean the work is bad but which
>> usually mean no maintenance after the thesis [1].  It looks like restlet
>> is a bit risky.
>>
>> The implementation seems not very alive on the Github account [2].
>>
>> [1]
>>
>> http://restlet.com/technical-resources/restlet-framework/guide/2.3/extensions/jaxrs
>> [2] https://github.com/restlet/restlet-framework-java
>>
>> PS: Thanks to Fabio for some information about that
>>
>> On 06/07/2015 13:58, Thomas Mortagne wrote:
>> > On Mon, Jul 6, 2015 at 1:57 PM, Thomas Mortagne
>> > <thomas.morta...@xwiki.com> wrote:
>> >> Did you check in more recent versions of Restlet ? Ours is tarting to
>> >> be pretty old.
>> >
>> > (2.0.14 vs 2.3.3)
>> >
>> >> On Mon, Jul 6, 2015 at 1:26 PM, Guillaume "Louis-Marie" Delhumeau
>> >> <gdelhum...@xwiki.com> wrote:
>> >>> I've made some experiments with Restlet. It seems there is no solution
>> >>> out-of-the-box to handle multiple level of nesting in the URL path.
>> But we
>> >>> can actually cheat.
>> >>>
>> >>> We can define a path with this syntax:
>> >>> @Path("/wikis/{wikiName}/spaces/{spaceName: .+}/pages/{pageName}")
>> >>>
>> >>> Here, {spaceName: .+} means that any character could be present,
>> including
>> >>> a slash.
>> >>>
>> >>> So we can actually retrieve the spaces list as a string, like "A/B/C",
>> that
>> >>> we can manually converts to "A.B.C" in our REST components.
>> >>>
>> >>> A working proof of concept of this (committed on a branch):
>> >>>
>> https://github.com/xwiki/xwiki-platform/compare/d5f4997ddf40d70c8eef9a9ee0e9e98d767eb586...26b63f99654c90ba39c0601ee0d7c9397e1c629c
>> >>>
>> >>> So we can use /xwiki/rest/wikis/xwiki/spaces/A/B/C as a valid URL.
>> >>>
>> >>> With the same trick, we can implement the multiple "spaces" proposal:
>> >>> https://github.com/xwiki/xwiki-platform/commit/3e83b6cf44e8
>> >>> it actually delegates to the component the parsing of the spaces
>> segments.
>> >>>
>> >>> It might not be as clean as a proper custom router, but at least is
>> >>> feasible without rewriting everything.
>> >>>
>> >>> What do you think?
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> 2015-07-06 12:02 GMT+02:00 Guillaume "Louis-Marie" Delhumeau <
>> >>> gdelhum...@xwiki.com>:
>> >>>
>> >>>> I am currently trying to implement the multiple spaces proposal to
>> see if
>> >>>> it is doable.
>> >>>>
>> >>>> 2015-07-03 11:52 GMT+02:00 vinc...@massol.net <vinc...@massol.net>:
>> >>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> On 3 Jul 2015 at 11:48:24, vinc...@massol.net (vinc...@massol.net
>> (mailto:
>> >>>>> vinc...@massol.net)) 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 (
>> fabio.mancine...@xwiki.com
>> >>>>> (mailto:fabio.mancine...@xwiki.com)) 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, vinc...@massol.net
>> >>>>>>>> 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 (
>> >>>>>>>>> gdelhum...@xwiki.com(mailto:gdelhum...@xwiki.com)) 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
>> >>>>> devs@xwiki.org
>> >>>>> http://lists.xwiki.org/mailman/listinfo/devs
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Guillaume Delhumeau (gdelhum...@xwiki.com)
>> >>>> Research & Development Engineer at XWiki SAS
>> >>>> Committer on the XWiki.org project
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Guillaume Delhumeau (gdelhum...@xwiki.com)
>> >>> Research & Development Engineer at XWiki SAS
>> >>> Committer on the XWiki.org project
>> >>> _______________________________________________
>> >>> devs mailing list
>> >>> devs@xwiki.org
>> >>> http://lists.xwiki.org/mailman/listinfo/devs
>> >>
>> >>
>> >>
>> >> --
>> >> Thomas Mortagne
>> >
>> >
>> >
>>
>> --
>> Jean Simard
>> jean.sim...@xwiki.com
>> Research engineer at XWiki SAS
>> http://www.xwiki.com
>> Committer on the XWiki.org project
>> http://www.xwiki.org
>> _______________________________________________
>> devs mailing list
>> devs@xwiki.org
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
>
>
>
> --
> Guillaume Delhumeau (gdelhum...@xwiki.com)
> Research & Development Engineer at XWiki SAS
> Committer on the XWiki.org project
> _______________________________________________
> devs mailing list
> devs@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
devs@xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to