Hi Paul, Thanks for the valuable hint. I agree that’s a bug. A surprising one for me, actually, I’m not sure when the base URI got lost. It should be correctly assigned again, and refer to the currently evaluated module [1,2]. BaseX 9.7 is due later this week.
Best, Christian [1] https://files.basex.org/releases/latest/ [2] https://github.com/BaseXdb/basex/commit/f33e1c44a576919511b0a91bc8863fa465a68162 On Mon, Feb 21, 2022 at 3:58 PM Paul L. Merchant Jr. <[email protected]> wrote: > > Hi everyone, I have a couple of questions about BaseX's REST API and how it > executes stored XQuery. I'm evaluating how much effort would be involved in > porting an existing XQuery code base to BaseX. The existing code is a > directory of XQuery scripts and modules that are called over a REST > interface. They aren't RESTXQ aware, although with some work they could be > converted if needed. (I'd prefer to do as little modification as possible > initially, however.) > > I've installed BaseX 9.6.4 on Mac OS in a directory I'll call BASEX_HOME. In > $BASEX_HOME/.basex, I have WEBPATH set to $BASEX_HOME/webapp (the default) > and RESTPATH = "" (the default). I also set an appropriate user and > password. I've placed the following two scripts in $BASEX_HOME/webapp: > > -------- > t1.xq > -------- > > import module namespace t2="t2" at "t2.xq"; > > t2:response() > > -------- > t2.xq > -------- > > module namespace t2="t2"; > > declare function t2:response() as xs:string { > "Hello World!" > }; > > -------- > > When I run the first script using curl, I get an error back that the second > cannot be located in the $BASEX_HOME directory not $BASEX_HOME/webapp as I > expected: > > $ curl http://localhost:8984/rest?run=t1.xq > Stopped at ., 3/1: > [XQST0059] Could not retrieve module: $BASEX_HOME/t2.xq. > > > Is this the expected behavior, or is BaseX resolving the path to module t2 > incorrectly? In any case given this behavior, if I want to point RESTPATH > outside the BaseX installation to a much larger library of XQuery, how can I > share modules within the library without having to use absolute paths for > everything? > > > My second question is simply, is it possible to set a cookie in response to a > REST (not RESTXQ) response? > > > Thanks! > > -- Paul

