2

BaseX RESTXQ スクリプトを使用して、URI から.xqmHTTP クエリ パラメータを取得しています。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 に答える