2

JAXBマッピングを使用して単一の複雑なオブジェクトをJerseyベースのRESTWebサービスに送信する方法を学びました:http://jersey.java.net/nonav/documentation/latest/xml.html#d4e820

ただし、もう少しやりたいと思います。

1)すべてJAXBで注釈が付けられた複数の複雑なオブジェクトを受け入れるメソッドを使用できますか?私は次のような意味です:

@POST
public void setPlanetAndGalaxy ( Planet planet, Galaxy galaxy ) { ... }

ジャージーはそのような方法を許可していますか?ジャージー/クライアントを使用した場合、クライアントのカウンターパートはどのようになりますか?これまでのところ、GalaxyPlanet {planet、galaxy}クラスのようなラッパーを定義する必要があるという印象を受けましたが、あまり好きではありません。

2)POSTメソッドの配列またはコレクションパラメーターを持つことは可能ですか?のように:

@POST
public void setPlanets ( Planet ... planets ) {...}

@POST
public void setPlanets ( Set<Planet> planets ) {...}

@POST
public void setPlanetsAndGalaxies ( Set<Planet> planets, Set<Galaxy> galaxies )

これらの3つの異なるケースで、クライアントコードはどのようになりますか?

助けてくれてありがとう。マルコ。

4

1 に答える 1

3

まず、リソースとその関係を特定する必要があります。銀河と惑星のみを扱う場合 (たとえば)、REST API パスは次のようになります。

/galaxies/ --> You can deal with list of galxies here
/galaxies/{oneGalaxyId}  --> One galaxy
/galaxies/{oneGalaxyId}/planets --> Planets of a galaxy
/galaxies/{oneGalaxyId}/planets/{planetId} --> One planet among the planets of a galaxy.

ListPOSTメソッドのパラメータとして 扱えるようになります。
public void setPlanets ( List<Planet> planets ) {...}
複数の複合型パラメータを受け入れることができない場合があります。

于 2012-09-22T05:30:47.590 に答える