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

Reply via email to