如何使用BaseX RESTXQ获取整个查询字符串?

时间:2012-08-03 16:52:20

标签: rest query-string basex

我正在使用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),它们可能被称为任何东西。能够将整个查询作为单个字符串来解决我的问题。

可以这样做吗?

1 个答案:

答案 0 :(得分:1)

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

在相关的JAX-RS规范中,存在多个Context注释,以便为Java函数提供其他请求信息(请参阅example)。较新版本的BaseX将提供Request Module,可以对其进行扩展,以提供对所有查询参数的动态访问。您可能希望写入basex-talk邮件列表或Adam Retter(RESTXQ的发明者)以进一步激发此类扩展。