Hi Marco,

I can confirm that your RESTXQ paths were supposed to work as you
expected them to work: If more than one endpoint is found in the first
round, the one with a larger number of path segments should have been
selected as favorite. In our implementation, the one with less
segments was chosen, which is why your page:others function was
evaluated in all cases.

I have corrected this behavior; the latest snapshot should work as
expected. In addition, I have slightly revised our documentation.

Cheers
Christian

[1] 
https://github.com/BaseXdb/basex/commit/f421f06046fc4dddc25c6d82c3ee5a522b323568
[2] http://files.basex.org/releases/latest/



On Fri, Feb 22, 2019 at 12:05 PM Marco Lettere <m.lett...@gmail.com> wrote:
>
> Hello all,
>
> according to the docs this should be possible:
>
> (: Matches all paths with "app" as first, a number as second, and
> "order" as third segment :)
> declare %rest:path("app/{$code=[0-9]+}/order")
>    function page:order($full-path) { ... };
>
> (: Matches all other all paths starting with "app/" :)
> declare %rest:path("app/{$path=.+}")
>    function page:others($path) { ... };
>
> And it actually is... We are currently in the very unfortunate situation
> where we need the following:
>
> (: Matches anything followed by /input :)
> declare %rest:path("app/{$path=.+}/input")
>    function page:inputs($path) { ... };
>
> (: Matches all other all paths starting with "app/" :)
> declare %rest:path("app/{$path=.+}")
>    function page:others($path) { ... };
>
> Unfortunately this makes all the calls to be redirected to the
> page:others function ... is there a motivation behind it or could it be
> possible to work around that?
>
> Thanks,
>
> Marco.
>

Reply via email to