2

我正在使用 BaseX RESTXQ.xqm脚本从 URI 获取 HTTP 查询参数price,例如;

URI:    /foo/?price=20
Result: <price>20</price>

这是.xqm代码;

declare
  %rest:path("foo")
  %rest:query-param("price", "{$price}")
  function page:foo($price) {
    <price>{$price}</price>
  };

但是,我怎样才能得到整个查询?例如;

URI:     /foo/?hello=world&this=that&foo=bar
Result:  <query>hello=world&this=that&foo=bar</query>

我的问题是我不知道查询将有多少参数或者这些参数可能被调用。可能有任意数量的参数(零到 n),它们可能被称为任何东西。能够将整个查询作为单个字符串获取将解决我的问题。

这可以做到吗?

4

1 回答 1

2

当前的 RESTXQ 草案没有提供动态请求查询参数的解决方案。

在相关的 JAX-RS 规范中,Context存在几个注释以使附加请求信息可用于 Java 函数(参见示例)。BaseX 的较新版本将提供一个Request Module,可以对其进行扩展以提供对所有查询参数的动态访问。您可能想写信给basex-talk邮件列表或 Adam Retter(RESTXQ 的发明者)以进一步推动这样的扩展。

于 2012-08-05T22:57:31.437 回答