2012-08-03 76 views
0

我正在使用BaseX RESTXQ .xqm腳本從URI獲取HTTP查詢參數price,例如;如何使用BaseX RESTXQ獲取整個查詢字符串?

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> 

我的問題是,我不知道有多少PARAMS查詢將會有什麼或可以調用這些PARAMS。可能有任何數量的參數(從零到n),它們可能被稱爲任何東西。能夠將整個查詢作爲單個字符串解決我的問題。

可以這樣做嗎?

回答

1

當前RESTXQ草案沒有提供動態請求查詢參數的解決方案。

在相關的JAX-RS規範中,存在多個Context註釋以向Java功能提供額外的請求信息(請參閱example)。較新版本的BaseX將提供Request Module,它可以擴展爲提供對所有查詢參數的動態訪問。您可能想寫郵件列表basex-talk或Adam Retter(RESTXQ的發明人)來進一步激發這樣的擴展。