2016-06-24 2 views
1

私はフォーマットSpring RESTと複雑なクエリパラメータはどのように使用できますか?

?attributeNames[0]=Foo&attributeValues[0]=Bar&attributeValues[0]=Baz 

(または意味的に等価でお送りしたいと思いますいくつかの属性があり、その中、私は、私はいくつかの検索用語によってフィルタリングするリソースを持っている - それぞれの名前は、1つまたはにマップすることができますが、より多くの値)

これをSpring RESTエンドポイント内で表現する最良の方法は何ですか? (私が正しくパラメータ名を指定する方法を参照することはできません)私は

public void endpoint(@RequestParam(...)String[] names, @RequestParam(...)String[][] values) { 
} 

ようなメソッドのパラメータで試してみたが、これは期待通りに動作するようには思えません。これを行うことは可能ですか、他のメカニズム(たとえばJSONオブジェクトとしてパラメータをシリアル化する)を使用するとうまくいくでしょうか?

+0

としてリクエストを処理する方がよいでしょう。特にリクエスト配列には、配列に関しては独自の制限があります。与えられた答えが示すように、この場合、要求本体として渡す方が良いでしょう。 –

+0

[Spring MVCは複数値クエリパラメータを処理できますか?](http://stackoverflow.com/questions/9768509/can-spring-mvc-handle-multivalue-query-parameter) –

+0

@DanielFigueroaは近いですが、一方のパラメータのインデックスを他方のインデックスから参照する。 –

答えて

1

技術的には、これは1つのクエリパラメータとして実装できます。 1つのパラメータとして解釈できます。

エンドポイント内でプログラムで処理できます。

しかし、これはURLに多くのものを公開することになるので、推奨される方法ではありません。リクエスト本体でMutlipartまたはフォームパラメータ

関連する問題