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. >