@PathParam
クラスパス (またはその他の XML / JSON to Map マッパー) に Jackson jar が必要です。美的、慣例、およびセキュリティ上の理由から、 にマップを渡したくないでしょう。通常、JSON / XML オブジェクトをリクエスト本文として渡します。たとえば、POST / PUT を使用します。
@POST
@Path("/anypath")
@Consumes({"text/xml", "application/json"})
public User find(HashMap<String, String> map) {
//magic should happen
}
次に、コンテンツ タイプが application/json または text/xml の POST / PUT リクエストを渡すだけです。
{
"key1": "value1"
"key2": "value2"
}
クラスパスに適切な Jackson / Moxy などのマッパーがある場合、JSON / XML 形式からjava.util.Map
(または POJO) への変換が行われます。
は@Produces
XML / JSON も返す予定の場合にのみ必要ですが、XML または JSON のいずれかを期待しているため、ここで a@Consumes
を使用することは理にかなっています。
ただし、たとえばリクエスト パラメータとして GET リクエストで JSON オブジェクトを渡す必要がある場合は、次の質問を参照してください: JSON クエリ パラメータを JAX-RS を使用してオブジェクトに変換する
ps for xml は MIME であり、そうではtext/xml
ありませんapplication/xml