On 29/05/2018 13:58, Christian Grün wrote:
Hi Marco,

The current RESTXQ 1.0 specification seems to mandate that comma separated lists needs to be extracted to single items [1]. There isn’t that much activity on the EXQuery repository [2], but maybe it could be discussed over there?
Yes. Going to ask there.


As an alternative, you can use the request:header function to retrieve the full value [3].

Much better solution than mine! I'll follow this advice. Thanks!

Best,
Christian

[1] http://exquery.github.io/exquery/exquery-restxq-specification/restxq-1.0-specification.html#form-header-annotation
[2] https://github.com/exquery/exquery/issues
[3] http://docs.basex.org/wiki/Request_Module#request:header



On Tue, May 29, 2018 at 1:49 PM, Marco Lettere <m.lett...@gmail.com <mailto:m.lett...@gmail.com>> wrote:

    Hello all,

    need to use the If-Modified-Since header in one of my APIs. The
    format requested is the IETF date format:

    If-Modified-Since: Wed, 21 Oct 2015 07:28:00 GMT

    as explained in [1].

    If I pass the header as prescribed to a restxq made like:

    declare
      %rest:path("config")
      %rest:header-param("If-Modified-Since", "{$modifiedsince-ietf}")
      %rest:HEAD
    function config:check($modifiedsince-ietf as xs:string?){

    I get the following exception:

    Cannot convert xs:string+ to xs:string?: ("Wed", "21 Oct 2015
    07:28:00 GMT").

    Which somehow demonstrates that , is treated as a separator of
    values for the header.

    I patched by replacing ? with * and using a string-join on the
    $modifiedsince-ietf before passing it to the follwoing
    parse-ietf-date function. But this is hard to explain and probably
    subject to other issues in the future.

    Is there a way to pass HTTP headers verbatim to the RestXQ function?

    thanks!

    M.


    [1]
    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since
    
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since>



Reply via email to