2017-02-22 13 views
0

ジェネリックデータをクエリできるWebサービスを作成したいと思います。私が欲しい - ジャージーでそれを読むための方法だろう何同じ名前の複数のパラメータを持つJAX-RSクエリ

.../FIELD_NAME /国/ FIELD_VALUE/US/FIELD_NAME /市/ FIELD_VALUE /ボストン

:だから、私のURLは、このようなものになるだろうフィールド名の配列とフィールド値の対応する配列を取得します。

+0

なぜアメリカ/ボストンだけではないのですか?なぜあなたは 'field_name/Country/field_value'を必要としますか? –

+0

名前は動的ですが、私は順序を知らないので、クライアントにフィルタをかけたいものを教えてほしい –

答えて

2

これは、上記のようにクエリパラメータとURLパラメータには適していないようです。

、その後のようなものになりますあなたのURL

@GET 
@Path("/query") 
public String queryValues(@QueryParam("Country") List<String> countries, 
          @QueryParam("City") List<String> cities) { 
    // Do work here 
} 

の場合:

/query?Country=US&City=Boston&City=Chicago 

JAX-RSは、次のようにエンドポイントでコレクションにそれらをマッピングすることで、同じ名前の複数のクエリパラメータをサポートしていますクエリパラメータは完全に動的であり、ランタイムまでの内容がわからない場合は、UriInfoオブジェクトを注入してクエリ文字列を自分で調べることができます。

@GET 
@Path("/query") 
public String queryValues(@Context UriInfo uriInfo) { 
    // Do work here 
} 
+0

私はパーズしたファイルからパラメータを取得するので、実行時には利用できますが、コンパイル時には利用できません。私は2番目のアプローチが必要で、uriInfoを解析する必要があると思います –

+0

'@PostParam'sを使って' @ POST'クエリでも動作しますか? – SomethingSomething

関連する問題